![]()
1、类名称空间对象空间
对象的属性:不仅在__init__里面添加,还可以在其它方法或者类外面添加
类的属性:不仅在类内部可以添加,还可以在类外部添加
对象空间存在一个类对象指针,所以对象可以找到类中的变量以及方法
类名只能找到类中的变量、方法、父类中的,不能找对象中的属性
2、组合:将一个对象封装一个属性,属性是另一个类的对象
好处:1、代码更合理
2、类与类之间的耦合性增强
3、继承
class Animal(object):
# 继承object是新式类,不继承则是经典类,虽然py3做了优化,但还是建议写上
type_name = '动物类'
def __init__(self,name,age):
self.name = name
self.age = age
def eat(self):
print('吃东西')
class Person(Animal):
def __init__(self,name,age,mind):
Animal.__init__(self,name, age) # 方法一 用的少
super().__init__(name, age)
self.mind = mind
def eat(self):
super().eat()
print('%s 吃饭' % self.name)
# 既执行子类方法,又执行父类方法
p1 = Person('某',18,'有思想')
p1.eat()
4、面向对象中super的作用:
super() 函数是用于调用父类(超类)的一个方法
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查