Python面向对象编程,Python面向对象吗
学习笔记
开发工具:Spyder
本文中目录继承的例1、例2(isinstance)、例3(issubclass)。举例4(变量继承)相关概念。
继承定义可以重用现有类的功能和概念,并在此基础上进行扩展。
优缺点:代码复用的一种方式。分级管理班级。
缺点:高耦合
类别子类(父类别):
Def __init__(自身,参数列表):
超级()。__init__(参数列表)
自我。Self实例变量=参数描述一个子类拥有父类的所有成员。
如果子类没有构造函数,它会自动执行父类的,但如果有构造函数,它会覆盖父类的。此时必须通过super()函数调用父类的构造函数,保证父类属性正常创建。
子类直接拥有父类的成员(共性),也可以扩展新的功能。
隔离客户端代码和功能的实现(Isolate和do)。
多重继承多重继承是指一个子类继承两个或多个基类,父类中的属性和方法同时被子类继承。
示例1代码:
班级人员:
def say(自我):
打印(“说”)
班级学生(人):
定义学习(自我):
打印(“学习”)
班主任(人):
定义示教(自我):
打印(“教学”)
s01=学生()
s01 .研究()
#你可以直接使用父类成员
s01 .说()
p02=人()
p02.say()
#父类不能使用子类成员。
# p02 .研究()
t03=教师()
t03.teach()
#不能用‘兄弟’类成员。
# t03.study()结果:
例2 (2(isinstance)isinstance()方法可以识别一个对象是否与一个类兼容。
代码:
班级人员:
def say(自我):
打印(“说”)
班级学生(人):
定义学习(自我):
打印(“学习”)
班主任(人):
定义示教(自我):
打印(“教学”)
s01=学生()
p02=人()
#确定对象是否与类型“兼容”
print(isinstance(s01,Person)) # True
print(isinstance(s01,学生))# True
打印(实例(s01,对象))#真
#类直接或间接继承对象类
print(isinstance(s01,教师))# False
Print (isinstance (P02,student)) #错误结果:
例3(issubclass)issubclass()方法可以确定一个类是否是另一个类的子类。
代码:
班级人员:
def say(自我):
打印(“说”)
班级学生(人):
定义学习(自我):
打印(“学习”)
班主任(人):
定义示教(自我):
打印(“教学”)
#确定类是否与类型“兼容”
print(issubclass(Student,Person)) # True
print(issubclass(学生,教师))# False
print(issubclass(学生,(教师,人)))# True
#(老师,人)只要有学生类的父类就返回True,否则返回False。
Print (is子类(student,student)) # true结果:
以示例4(变量继承)代码为例:
班级人员:
def __init__(self,name):
self.name=name
班级学生(人):
def __init__(自己,名字,分数):
#通过函数,调用父类方法
超级()。__init__(名称)
self.score=分数
班主任(人):
def __init__(自己,姓名,薪金):
超级()。__init__(名称)
self.salary=薪水
s01=学生( zs ,100)
打印(s01 .分数)
打印(s01 .名称)
p02=人员( ww )
打印(p02.name)结果:
内存:
相关概念父类(基类,超类),子类(派生类)。
父类比子类更抽象,范围更广;子类比父类更具体,范围更窄。
单一继承:只有一个父类(如Java,C#)。
多重继承:有多个父类(例如C,Python)。
Class:任何直接或间接从Object类继承的类。
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。