--super()、特別なオブジェクトを取得します。これは
、親クラスの属性にアクセスするために(厳密に継承の関係に従って)使用されます
--super().__ init __()、
ここでは括弧内の__init __()パラメータselfを渡す必要はありません。他のパラメータを渡すパラメータがあります
。Python2では、super()の完全な使用法はsuper(独自のクラス名、self)です。__init __()、
Python2で完全に記述する必要がありますが、Python3ではsuper() .__ init __()と省略できます。
-
使用法の分析:サブクラスの__init__メソッドでsuper().__ init __()を使用します。これは、親クラスの__init__コンストラクターを取得することと同等であり、親クラスの__init__メソッドを実行できます。補足(メンバープロパティ/メソッドの追加など)は
、親クラスの__init__メソッドを継承することと同等であり、サブクラスでオブジェクトをインスタンス化した後、このオブジェクトはもちろん、親クラスオブジェクトのメンバープロパティ/メソッドを指すことができます独自のクラスのメンバープロパティ/メソッドを指摘することもできます
。サブクラスでインスタンス化されたオブジェクトが元々親クラスオブジェクトのメンバープロパティ/メソッドを呼び出すことができない場合、上記のメソッドを使用した後、親クラスオブジェクトが呼び出すことができるもの、サブクラスオブジェクト電話できる
クラスOldboyPeople: 学校 = ' oldboy ' デフ __init__ (自己、名前、年齢、性別): self.name = 名前 self.age = 年齢 self.sex = セックス クラスOldboyStudent(OldboyPeople): デフ __init__ (自己、氏名、年齢、 sex、stu_id): super()。__init__ (名前、年齢、性別) self.stu_id = stu_id デフchoose_course(自己): 印刷(' %sはもちろん選んでいる'%self.name) #のリターン「真」 #の戻り値なしに付属している機能は、戻り値「真」、そして行コメント場合、 #その後、印刷(stu1.choose_courseを())を印刷この結果は、次のようになります。タンクはコースを選んでいます #そしてNoneを出力します。 STU1 = OldboyStudent(' タンク'、19、。' 男性'、1。 ) 印刷(STU1を。__dict__ ) 印刷(stu1.choose_course()) 上記の手順の印刷出力結果を、以下の通りである: { ' 名前':' タンク'、' 年齢「:19、」セックス":' male '、' stu_id ':1 } タンクはコースを選択しています なし
送信元:https : //www.cnblogs.com/ludundun/p/11494933.html