super代替类名

Posted 未来的技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了super代替类名相关的知识,希望对你有一定的参考价值。

#当父类名改动时,显然需要改动内容巨大,所以用super方法
#super()代替了父类名,也不需要传递参数self,父类名可以随意改动不影响
class Vehichle1:
    Country=china
    #名字=‘ales‘不好这样
    def __init__(self,name,speed,load,power):
        self.name=name
        self.speed=speed
        self.load=load
        self.power=power
    def run(self):
        print(开动了)
class Subway(Vehichle1):#要有自己的心的参,其他全继承
    def __init__(self,name,speed,load,power,line):
        # self.name = name
        # self.speed = speed
        # self.load = load
        # self.power = power
        # Vehichle.__init__(self,name,speed,load,power)
        super().__init__(name,speed,load,power)#
        #super方法不需要加self,父类名改动时完全无影响
        #self作为具体的实例内容
        # 子类的调用父类的参数名直接调用,也要加上self
        self.line=line
    def showinfo(self):
        print(self.name,self.line)
    def run(self):
        # Vehichle.run(self)#子类调用父类的方法,self必须加上
        super().run()
        print(%s开动了%self.name)
line1=Subway(1号线,2km/h,23412人,,12)
line1.showinfo()
line1.run()

 

以上是关于super代替类名的主要内容,如果未能解决你的问题,请参考以下文章

super

python调用父类方法的三种方式(super调用和父类名调用)

不立即分离片段

java中import,用*号代替类名导入类失败,为啥?

python中super().__init__和类名.__init__的区别

python 调用父类方法:super && 直接使用父类名