Python 面向对象高级编程——多重继承

1.1   多重继承

>>> #最大类

... class Animal(object):

...    pass

...

>>> #大类

... class Mammal(Animal):

...    pass

...

>>> class Bird(Animal):

...    pass

...

>>> class Runnable(object):

...    def run(self):

...        print(‘Running...‘)

...

>>> classDog(Mammal, Runnable):     --同时继承Mammal, Runnable两个父类的功能

...    pass

...

>>> s = Dog()

>>> s.run()

Running...

Mixln

在设计类的继承关系时,通常,主线都是单一继承下来的;然而多重继承,为了更好的看出多重继承的关系,加上Mixln。

>>> classDog(Mammal, RunnableMixln, xxxxMixln ……):

...    pass

...

时间: 2024-08-06 12:57:03

Python 面向对象高级编程——多重继承的相关文章

python Class:面向对象高级编程 多重继承

继承:通过子类继承父类信息而达到子类可以扩展功能的目的 多重继承:通过子类继承多个类 一.多重继承一类 套用廖雪峰的例子: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868200511568dd94e77b21d4b8597ede8bf65c36bcd000 Dog - 狗狗: Bat - 蝙蝠: Parrot - 鹦鹉: Ostrich - 鸵鸟. 按哺乳和鸟类

Python实用笔记 (25)面向对象高级编程——多重继承

class Dog(Mammal, Runnable): pass 多重继承,继承了不同大类的所有功能,这种设计称之为Mixln,其目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系. 如: class MyTCPServer(TCPServer, ForkingMixIn): pass 原文地址:https://www.cnblogs.com/niulang/p/9012960.html

python面向对象高级编程

python中属性和方法的动态绑定  class Student(object):     pass   # 实例化一个对象     s = Student() # 给这个对象绑定一个属性name s.name = 'John'   print(s.name) John   # 定义一个方法 def set_age(self, age):     self.age = age   # 导入模块     from types import MethodType   #给s这个对象绑定一个set_a

Python 面向对象高级编程——使用枚举和元类

1.1   使用枚举 基于Enum类实现的枚举 >>> fromenum import Enum >>> Month = Enum('Month', ('Jan','Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) >>> for name, member inMonth.__members__.items(): ...    print(name,

Python面向对象高级编程:@property--把方法变为属性

为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: 1 >>> class Student(object): 2 def get_score(self): 3 return self.__score 4 def set_score(self,value): 5 if not isinstance(value,int): 6 raise ValueError('sec

Python 面向对象高级编程——使用@property

1.1   使用@property 输入成绩score时,需对这个参数进行检查. >>> class Student(object): ...    def get_score(self): ...        return self.__score ...    def set_score(self, value): ...        if not isinstance(value, int): ...             raise ValueError('score mu

Python 面向对象高级编程——定制类

1.1   定制类 1.1.1   __str__ >>> class Student(object): ...    def __init__(self, name): ...        self.name = name ... >>> s = Student('daidai') >>> s.name 'daidai' >>> Student('daidai').name 'daidai' >>> print(

Python面向对象高级编程[email protected]

使用@property 在绑定属性时,如果直接把属性暴露出去,虽然写起来简单,但是没法检查参数,导致可以把成绩随便改: >>> class Student(object): pass >>> s =Student() >>> s.score=999 >>> s.score 999 这显然不符合逻辑,为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_s

Python面向对象高级编程-_slots_

使用_slots_ 正常情况下,当定义一个class,创建一个class的实例后,可以给实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: >>> class Student(object): pass 然后,尝试给实例绑定一个属性: >>> s = Student() >>> s.name = 'Michael' >>> print s.name Michael 还可以尝试给实例绑定一个方法: >>>