# 超类 super(), 优雅的初始化类的属性 #当对象B继承了对象A时,对象B就拥有了对象A的所有方法和属性.但是当我们需要给B()定义 一个初始属性 ,就不能像方法A()一样用__init__(self),因为直接用 __init__(self)就相当 于重写了父类的 初始化属性 class A(): def __init__(self): self.first_name = 'king' def second_name(self): print('hao') class B(A): def __init__(self): super(B,self).__init__( ) self.english_name = 'horsun' def full_name(self): print('king hao')
object 和type都属于type类(class ‘type’)
type类有type元类自身创建,objec类是由元类type创建
object的父类为空,没有继承任何类
type的父类为object类(class ‘object’)
元类:负责产生该对象的类称之为元类,即元类可以简称为类的类
-
父子关系:这种关系存在于某个类(subclass)是另一个类(superclass)的特别版本之中。通常描述为“子类是一种父类”。比如:蛇是一种爬行动物(Snake is a kind of reptile)。其中,蛇(snake)是子类,爬行动物(reptile)是父类。蛇拥有爬行动物的特征,同时,又拥有标志自己是一条蛇的特征。
-
类型实例关系:这种关系存在于两个对象之中,其中一个对象(实例)是另一个对象(类型)的具体实现。我有一条宠物蛇叫Squasher,那么Squasher就是蛇的一个实例。英文描述为:"Squasher is an instance of snake"
两个规则:
如果X是A的实例,同时A又是B的子类,那么,X也是B的实例 。 如果B是M的实例,同时A是B的子类,那么,A也是M的实例
比如你自定义了一个类myclass
,实例化就是在myclass
后增加()
操作符完成的。也就是instance_of_myclass=myclass()