面向对象的特征:
封装、继承、多态。
面向对象的实现:
创建类,实现封装:
创建类,定义类方法、类属性。
class anmil():#创建类 def huxi(self): return '呼吸' def jiao(self): return '叫声'
继承类,实现多态:
被继承的类称之为父类,继承者被称之为子类,子类可以用父类的属性和方法;子类的属性各有不同,称之为多态。
class dog(anmil):#继承类 def jiao(self):#重写父类方法 return '汪' def do(self): return '遛狗' class man(anmil):#继承animal类,实现多态 def jiao(self): return '啊' def do(self): return '散步'
实例化对象,面对对象的体现:
将类实例化,建立实例化对象。
damao = dog()#实例化对象 print(damao.huxi())#调用父类方法 print(damao.jiao())#调用子类方法 xiaoming = man() print(xiaoming.jiao()) print(xiaoming.do())
self解析:Python中就规定好,函数的第一个参数,就必须是实例对象本身,并且把其名字写为self。
staticmethod和classmethod装饰器:
classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法;使用@classmethod修饰的方法可以使用类变量,但是不能使用成员变量。
staticmethod 将一个方法变为静态方法,不能使用可以变化的类变量和实例变量。
类变量和成员变量的区别如下:
hisname = '王大' class worker(hisname): job = 'worker'#job是类变量 def __init__(self,name): self.name = hisname#name是成员变量