一、类和实例
1、类是抽象的,比如说学生
2、实例是具体的,比如叫小明的学生
3、创建对象首先是调用构造方法,
class Stu(): 班级="145" 爱好="学习" def __init__(self,name,age): self.name=name self.age=age def xuexi(self): print(self.name+"爱学习") def wan(self,a): print(self.name+"在玩"+a) a=Stu("小明",18) print(a.name+"的爱好是:"+a.爱好) a.wan("篮球") 运行结果: 小明的爱好是:学习 小明在玩篮球
4、静态方法
直接通过类名调用,不用通过实例对象
@staticmethod def sti(): print("我是静态方法") Stu.sti()
5、继承与派生
Tea继承了Stu,所以Stu有的东西,在Tea中都可以使用
在Tea中比Stu多了一个讲课的方法,该方法被称为派生方法
class Tea(Stu): print("我是老师") def 讲课(self): print(self.name+"在讲课") a=Tea("张三",12) a.wan("篮球") a.讲课()
6、方法的重写
当Tea和Stu中都有xuexi方法时,创建Tea的实例,调用xuexi的方法,执行的是Tea的学习方法
7、super函数
强制调用父类方法,传入的第一个参数为子类,第二个参数为self(可以理解为创建的实例),super(Tea,a).xuexi()
class Stu(): 班级="145" 爱好="学习" def __init__(self,name,age): self.name=name self.age=age def xuexi(self): print(self.name+"爱学习") def wan(self,a): print(self.name+"在玩"+a) @staticmethod def sti(): print("我是静态方法") def clsm(self): print(self.班级) class Tea(Stu): print("我是老师") def 讲课(self): print(self.name+"在讲课") def xuexi(self): print(self.name+"在学习") a=Tea("张三",12) a.wan("篮球") a.讲课() a.xuexi() super(Tea,a).xuexi() 运行结果: 我是老师 张三在玩篮球 张三在讲课 张三在学习 张三爱学习