Python基础学习 -- 面向对象
Posted web安全工具库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础学习 -- 面向对象相关的知识,希望对你有一定的参考价值。
一、类和实例
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()
运行结果:
我是老师
张三在玩篮球
张三在讲课
张三在学习
张三爱学习
以上是关于Python基础学习 -- 面向对象的主要内容,如果未能解决你的问题,请参考以下文章