【无标题】

python面向对象学习总结

面向对象应用

class car:
    """一个简单的类实例"""
    mg = 1000
    def car1(self):    #这个函数中必须要传参数,最少是个self
        return '我跑,我跑,我加速跑'
class bus:
    """一个简单的类实例"""
    mg = 10000
    def bus1(self):    #这个函数中必须要传参数,最少是个self
        return '我拉,我拉,我再拉'
x = car()
y= bus()
# 访问类的属性和方法
print("小汽车的质量为:%dKG"% x.mg)      #调用类中的参数
print("小汽车的特征:", x.car1())        #调用类中的方法
print("客车的质量为:%dKG"% y.mg)      #调用类中的参数
print("客车的特征:", y.bus1())        #调用类中的方法

先定义相应的类,然后再从类中初始化对象,对象能够调用类中的属性和方法,方便了程序的编写。例题可以看出,当你有很多小汽车时,就会更加方便进行信息的输出。

继承的使用

算是对类之间的代码简化,有相似特征,包含关系之间的类,通过相互调用,能够简化代码量。一般都是大类包含小类,如哺乳动物是大类,人是小类。

class PassergerCar:
    # 定义基本属性
    name = ''
    lu = 0
    # 定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    # 定义构造方法
    def __init__(self, n, a, w):
        self.name = n
        self.lu = a
        self.__weight = w
    def speak(self):
        print("%s 说:我是%d号车。我的体重为%dKG" % (self.name, self.lu,self.__weight))
# 单继承示例
class bus(PassergerCar):
    mg = 10000
    def __init__(self, n, a, w, g):
        # 调用父类的构函数
        PassergerCar.__init__(self, n, a, w)
        self.mg = g
    # 覆写父类的方法
    def speak(self):
        print("%s说:我是东风路%d路公交车,我的重量为%dKG" % (self.name, self.lu, self.mg))
k = bus('东风路公交车',10,11,10000)
k.speak()
s= PassergerCar("客车",10,1100)
s.speak()

该例子,不是特别好的集成,这个大类并不是包含小类,仅仅是有相似特征进行的继承。继承中,小类一般可以有自己的独特属性方法。

多继承

一个字类可以继承多个父类,继承多个父类的方法和属性,当父类中有重名的方法是,以第一个方法为最终调用的方法。

class Father(object):
    def __init__(self,money):
        self.money = money
    def run(self):
        print("run")
    def eat(self):
        print("eat1")
class Mother(object):
    def __init__(self,face):
        self.face = face
    def play(self):
        print("play")
    def eat(self):
        print("eat2")
class Child(Father,Mother):
    def __init__(self,money,face):
        Father.__init__(self,money)
        Mother.__init__(self,face)
a = Child(10000,200)
print("我继承了多少%dmoney,我继承了的%d颜值"% (a.money,a.face))
a.play()
a.run()
a.eat()

多态是针对对象的,只需将制定对象传入,就可以给对对象进行制定操作。

class Animal(object):
    def __init__(self,name):
        self.name = name
    def eat(self):#吃的方法
        print(self.name+" eat")
class Cat(Animal):#继承父类
    def __init__(self,name):
        super(Cat,self).__init__(name)
class Dog(Animal):#继承父类
    def __init__(self,name):
        super(Dog,self).__init__(name)
class Person(object):#定义人的类,人去投喂狗和猫
    def feedAnimal(self,ani):
        print("给你食物")
        ani.eat()
c = Cat('tom')
d = Dog('xiaohei')
c.eat()
d.eat()
person = Person()#初始化,形成对象
person.feedAnimal(c)#调用对象,应用多态操作。
person.feedAnimal(d)

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。

类的属性

class Person(object):
    name = "qin"#类中的属性
    def __init__(self,name):#对象的属性
        self.name = name
print(Person.name)#类属性的输出
per = Person('li')
print(per.name)#对象属性的输出
print(Person.name)

对象属性的优先级是比类属性的优先级要高的,当对象中没有属性方法时,才会默认调用类中的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值