【1.111】继承调用
#继承调用父类方法创建对象,以及调用其方法 class che: def __init__(self,name): self.name = name def run(self,speed,power): print ("开动啦") print ("%s开走了,速度为%s,动力由%s提供" %(self.name,speed,power)) class public_trasportation(che): pass line1=public_trasportation("成都公交") line1.run("13km/s","天然气")
1、以上只是使用父类的 方法 和 创建对象
2、重写方法与父类同名
(调用顺序就是找自己的类然后父类,
多继承就使用广度优先或者深度优先
(新式类为广度优先
经典类为深度优先
(python3 全是新式类,python2只有继承object的为新式类)
python2继承非object类的为经典类
#继承调用 class che: def __init__(self,name): self.name = name def run(self,speed,power): print ("开动啦") print ("%s开走了,速度为%s,动力由%s提供" %(self.name,speed,power)) class public_trasportation(che): def __init__(self,name,line): che.__init__(self,name) #记得要传入参数self self.line=line def run(self,speed,power,loader): print("下面输出来自che(父类)".center(50, "-")) che.run(self,speed,power) print() print("下面输出来自public_trasportation".center(50, "-")) print("%s%s路开走了,速度为%s,动力由%s提供,载重%s人" %(self.name,self.line,speed,power,loader)) line1=public_trasportation("成都公交","520") line1.run("1314km/s","92#汽油","52") # ------------------下面输出来自che(父类)------------------- # 开动啦 # 成都公交开走了,速度为1314km/s,动力由92#汽油提供 # # ------------下面输出来自public_trasportation------------ # 成都公交520路开走了,速度为1314km/s,动力由92#汽油提供,载重52人
3、看看super().如何用
super( ). 和super(__class__,self).
注意点
注意 对象(__class__) 就是输出结果的是类名
#继承调用 super() class che: def __init__(self,name): self.name = name def run(self,speed,power): print ("开动啦") print ("%s开走了,速度为%s,动力由%s提供" %(self.name,speed,power)) class public_trasportation(che): def __init__(self,name,line): super().__init__(name) #这里就不用传入self #che.__init__(self,name) #记得要传入参数self self.line=line def run(self,speed,power,loader): print("下面输出来自che(父类)".center(50, "-")) super().run(speed,power) #che.run(self,speed,power) print() print("下面输出来自public_trasportation".center(50, "-")) print("%s%s路开走了,速度为%s,动力由%s提供,载重%s人" %(self.name,self.line,speed,power,loader)) line1=public_trasportation("成都公交","520") line1.run("1314km/s","92#汽油","52") # ------------------下面输出来自che(父类)------------------- # 开动啦 # 成都公交开走了,速度为1314km/s,动力由92#汽油提供 # # ------------下面输出来自public_trasportation------------ # 成都公交520路开走了,速度为1314km/s,动力由92#汽油提供,载重52人
4、看看super(子类名,self)
#继承调用 super(子类名,self) class Che: def __init__(self,name): self.name = name def run(self,speed,power): print ("开动啦") print ("%s开走了,速度为%s,动力由%s提供" %(self.name,speed,power)) class public_trasportation(Che): def __init__(self,name,line): super(public_trasportation,self).__init__(name) #super().__init__(name) #这里就不用传入self #Che.__init__(self,name) #记得要传入参数self self.line=line def run(self,speed,power,loader): print("下面输出来自che(父类)".center(50, "-")) super(public_trasportation,self).run(speed,power) #super().run(speed,power) #Che.run(self,speed,power) print() print("下面输出来自public_trasportation".center(50, "-")) print("%s%s路开走了,速度为%s,动力由%s提供,载重%s人" %(self.name,self.line,speed,power,loader)) line1=public_trasportation("成都公交","520") print(line1.__class__) # <class '__main__.public_trasportation'> line1.run("1314km/s","92#汽油","52") # ------------------下面输出来自che(父类)------------------- # 开动啦 # 成都公交开走了,速度为1314km/s,动力由92#汽油提供 # # ------------下面输出来自public_trasportation------------ # 成都公交520路开走了,速度为1314km/s,动力由92#汽油提供,载重52人
浙公网安备 33010602011771号