Pythonなど、クラスの継承

2007 ワード

1>自動車クラスの作成
Python 2.7 Xではクラス定義にobjectを追加する必要がありますが、Python 3 Xでは省略します!Init()メソッドは、クラスインスタンスcarの作成時に自動的に呼び出され、実パラメータselfに自動的に入力されます.クラスに関連付けられた各メソッドは、インスタンス自体への参照であり、サンプルがクラス内のメソッドとプロパティにアクセスできるように、インスタンスselfを自動的に渡します.selfを接頭辞とする変数はクラス内のすべての方法で使用できます.また、クラスの任意の例でこれらの変数にアクセスすることもできます.C、C++のクラスのpublic変数と似ています.!デフォルト値selfを設定.odermeter_reader=0
class  Car(object):
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odermeter_reader=0

    def get_descriptive_name(self):
        long_name=str(self.year)+' '+self.make+' '+self.model
        return long_name


my_new_car=Car('audi','a4','2017')
print(my_new_car.get_descriptive_name())```
  #####2>  
           ,        (   )        。  
               。
            ,         。
 Python3.5       
`super().__init__(make,model,year)`
Python2.7        :

class ElectricCar(Car): def init(self,make,model,year,battery=40): super(ElectricCar,self).init(make,model,year) self.battery_size=battery
def describe_battery(self):
    print("This car has a "+str(self.battery_size)+"-kwh battery.")
!super()                  ,             。
!  __init__()             ,
  #####3>       
   __init__(),              ,,               ,       。
#####4>       

class Batery(object): def init(self,battery_size=90): self.battery_size=battery_size
def describe_battery(self):
    print("This car has a "+str(self.battery_size)+"-kwh battery.")

class ElectricCar(Car): def init(self,make,model,year,battery=40): super(ElectricCar,self).init(make,model,year) self.battery=Batery()
  ElectricCar

my_new_car2=ElectricCar('audi','a4','2017') print(my_new_car2.get_descriptive_name()) my_new_car2.battery.describe_battery()