Day 19 类的名称空间和对象的名称空间,组合,继承
01 类的名称空间和对象的名称空间
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性
而类有两种属性:静态属性和动态属性
静态属性就是直接在类中定义的变量
动态属性就是定义在类中的方法
类:
# 类的属性:不仅在类内部可以添加,还可以在类外部添加。
# 类名只能找到类中的变量,方法,或者(父类中的),不能找对象中的属性。
对象:
# 对象的属性:不仅在__init__里面添加,还可以在其他方法或者类外面添加。
# 对象空间中存在一个类对象指针,所以对象可以找到类中的变量以及方法
02 组合
# 组合: 将一个对象封装到另一个对象的属性中
class A(): pass def abc(self,obj): self.abc = obj class B(): pass def eat(self): pass a = A() b = B() a.abc(b) a.abc 相当于对象b a.abc.eat()
# 组合的好处:
# 1,代码更合理。
# 2, 类与类之间的耦合性增强。
03 继承
# 继承:单继承,多继承。
# python 类:
# 经典类:只存在python2x,不继承object的类,所以python2x既有经典类,又有新式类。
# 新式类:继承object类。python3x所有的类默认都继承object。
# 单继承都一样。
# 多继承不一样:
# 经典类 :深度优先。
# 新式类 : mro 继承顺序,C3算法。
继承的方法:
def __init__(self,name,sex,age,mind): Aniaml.__init__(self,name,sex,age) # 方法一 super(Person,self).__init__(name,sex,age) # 方法二 super().__init__(name,sex,age) # 方法二 self.mind = mind def eat(self): super().eat()
# 继承:
#1,类与类之间的耦合性增强。
#2,节省代码。
# 3,代码更加规范化,合理性。

浙公网安备 33010602011771号