目录
一、继承
二、多重继承
三、super关键词
四、isinstance()函数
一、继承
继承:子类直接拥有父类的属性和方法
父类、超类(super class)、基类(base class):被继承的类
子类(subclass)、派生类(derived class):从父类继承出来的新类
父类的重写:只要子类的(方法名,参数)相同就可以
例:
#父类
class Person:
name=''
age=0
def __init__(self,name,age):
self.name=name
self.age=age
def showName(self):
print(self.name)
def showAge(self):
print(self.age)
#子类
class Worker(Person):
job=''
def __init__(self,name,age,job):
super().__init__(name,age)
self.job=job
def shoeJob(self):
print(self.job)
w=Worker('张三',35,'python工程师')
w.showName()
w.showAge()
w.showJob()
二、多重继承
多重继承:从多个父类同时继承
语法:
class Child(Super1,Super2,...):
???? pass
?例:
#父类1
class Parent1:
name='p1'
#父类2
class Parent2:
name='p2'
#子类
class Child(Parent1,Parent2):
def __init__(self):
print(self,name) #p1
class Child(Parent2,Parent1):
def __init__(self):
print(self,name) #p2
##如果产生了冲突,继承括号里谁在前面继承谁
三、super关键词
super关键词:用来访问父类(super class)的成员
?例:
class Parent:
def show(self):
print('父类')
class Child(Parent):
def __init__(self):
self.show() #子类
super().show() #父类
def show(self):
print('子类')
t=Child()
四、isinstance()函数
isinstance(obj,class)函数:用于检测是否是同一个类的实例
?例:
isinstance([1,2,3],tuple) #False
isinstance([1,2,3],list) #True
#需要注意:所有类型都是object的子类,检测object永远是True,即:isinstance(任何,object)为True
isinstance([1,2,3],object) #True
isinstance(12,object) #True
isinstance(print,object) #True
isinstance(None,object) #True
isinstance(object,object) #True
|