zoukankan      html  css  js  c++  java
  • 2019年7月28日 在子类中调用父类的方法 happy birthday

    class Vehicle:
        country='China'
        def __init__(self,name,speed,load,power):
            self.name=name
            self.speed=speed
            self.load=load
            self.power=power
    
        def run(self):
            print('%s is running'%self.name)
    
    class Subway(Vehicle):
        def __init__(self,name,speed,load,power,line):
            # self.name=name
            # self.speed=speed
            # self.load=load
            # self.power=power
            Vehicle.__init__(self,name,speed,load,power)#子类中调用父类的方法,就是上面那段代码,这里self是需要的,因为是在对象在调用类的方法
            self.line=line
    
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
    
        def run(self):
            Vehicle.run(self)#注意传递self
    
    line13=Subway('bjdt','100km/s',5000,'E','13#')
    
    line13.show_info()
    
    line13.run()

    》》》

    bjdt 100km/s 5000 E 13#
    bjdt is running

    super()方法

    class Vehicle:
        country='China'
        def __init__(self,name,speed,load,power):
            self.name=name
            self.speed=speed
            self.load=load
            self.power=power
    
        def run(self):
            print('%s is running'%self.name)
    
    class Subway(Vehicle):
        def __init__(self,name,speed,load,power,line):
            # self.name=name
            # self.speed=speed
            # self.load=load
            # self.power=power
            # Vehicle.__init__(self,name,speed,load,power)#子类中调用父类的方法,就是上面那段代码,这里self是需要的,因为是在对象在调用类的方法
            super().__init__(name,speed,load,power) #super方法不用传递self,通过super方法可以直接调用父类方法
            self.line=line
    
        def show_info(self):
            print(self.name,self.speed,self.load,self.power,self.line)
    
        def run(self):
            # Vehicle.run(self)#注意传递self
            super().run() #super方法不用传递self,通过super方法可以直接调用父类方法
    line13=Subway('bjdt','100km/s',5000,'E','13#')
    
    line13.show_info()
    
    line13.run()

    >>>

    bjdt 100km/s 5000 E 13#
    bjdt is running

  • 相关阅读:
    C#3.0实现变异赋值(Mutantic Assignment)
    博客园积分算法探讨
    C#动静结合编程之二: 两种哲学
    REST构架风格介绍之二:CRUD
    C# vs C++之一:委托 vs 函数指针
    REST构架风格介绍之一:状态表述转移
    C#动静结合编程之三:Duck Typing
    C#动静结合编程之四:泛型委托
    C# vs C++之二:GC vs RAII
    Ecshop文章分类列表页如何自定义Title以提高SEO效果
  • 原文地址:https://www.cnblogs.com/python1988/p/11260979.html
Copyright © 2011-2022 走看看