封装
封装就是将统一类型的内容放置在一起,通过self去调用
class People():
def __init__(self, name, age):
# self是对象,name是属性,self.name就是将对象和属性封装在一起
self.name = name
self.age = age
def run(self):
print('%s is running...' % self.name)
P1 = People(name='octopus', age='10')
P1.run()
继承
定义一个类,从现有的某个类进行继承
新的类,称为子类,扩展类(subclass),被继承的称为父类,基类,超类
(Baseclass、superclass)
代码示例
继承的工作机制
class Father():
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print('%s is eating.' % self.name)
def sleep(self):
print('%s is sleeping.' % self.name)
class Son(Father):
def eat(self):
# 父类的调用方法
# Father.eat(self)
# 不更改继承名直接调用父类方法
super(Son,self).eat()
print('play then eat.')
father = Father('old', 40)
son = Son('young', 20)
调用顺序:实例化对象默认执行构造方法,子类没有的方法调用父类
调用父类的方法
son.eat()
son.sleep()
继承拥有传递性,子类拥有父类的父类…的方法
class Animal():
def eat(self):
print('eat')
class cat(Animal):
def miao(self):
print('miao')
c = cat()
c.eat()
c.miao()
class duolaameng(cat):
def speak(self):
print('speak')
c = duolaameng()
c.eat()
如果有多个相同的方法,继承由前向后继承
多态性
传入多个子类时,只需要继承父类就行
开闭原则:
扩展开放,允许子类重写方法
修改封闭,扩展开放,直接继承父类方法
代码实例
class get_grades():
def get(self):
print('100')
class Math(get_grades):
def get(self):
print('90')
class Chinese(get_grades):
def get(self):
print('80')
A = Math()
B = Chinese()
A.get()
B.get()