__init__メソッドセクション8.2 Pythonのクラスの詳細な分析:詳細なコンストラクタケース

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

上記のメソッド定義された構文構造を記述し、説明の文法、ケースは、ケースを通過し、このセクションのコンストラクタ引数及び戻り値に説明します。
まず、ケースを示し
wheelcount、電源、oilcostperkm、totaldistance:このセクションでは、4つのインスタンス変数を持つクラスの車、定義され 、 車輪の数、パワー、キロメートル当たりの燃料消費量、総走行距離に対応します。コンテンツを集中するために、我々は唯一の任意の処理をせず、コンストラクタに渡されたパラメータの値を示しています。次のようにクラスが定義されています。

class Car():
   def __init__(self,*args,**kwargs):       
       print("In  __init__:args=",args,",kwargs=",kwargs)

第二に、ケース1:従来の転送モードを使用して定義された引数の例

car=Car(4,'汽油发动机',0.1,0)#参数分别是wheelcount, power,oilcostperkm,totaldistance

スクリーンショットの実行:


 
第三に、ケース2:使用するキーワード引数は、モード定義されたインスタンスを渡すパラメータ
引数で渡されたキーワード引数、キーワードの名前を使用して、対応するクラスのインスタンス変数は限りシステムは、誰ができる知って来るように持っていません。

car=Car(wheel_count=4,power='汽油发动机',oilcost_perkm=0.1,total_distance=0)

スクリーンショットの実行:


 
第四に、ケース3:価値モデルミックスによるキーワードパラメトリックおよび非キーワード引数を使用します

car=Car(4,'汽油发动机',oilcost_perkm=0.1,total_distance=0)


 
V.ケース4:合意された任意のパラメータを入力しないでください

car=Car('汽车','测试','随便填',wheel_count=4,power='汽油发动机',oilcost_perkm=0.1,total_distance=0)


 
VIケース5:コンストラクタでは、値を返す
クラス定義1.:

class Car(Vehicle):
    def __init__(self,wheelcount, power,oilcostperkm):
        self.oilcostperkm = oilcostperkm
        print("In Car __init__:oilcostperkm=",self.oilcostperkm)
        super().__init__(wheelcount, power)
        return 1

実施例2は、定義を実行します車=カー(4「ガソリンエンジン」、0.1)
による設定方法に、与えられるべき値を返します。
3.スクリーンショット:

4.ケース説明:あなたはreturn文を持たなければならない場合、それはNoneを返す必要があり、コンストラクタで値を返すべきではありません。

このセクションでは、プロセスコンストラクタパラメータを結合変速機ケースの詳細を、それぞれのケースは非常に単純であるが、説明:
1、もう一つの自己パラメータ以外コンストラクタパラメータ、伝送パラメータは、例と一致している定義。
パラメータ・モードによって集め2、(又は「セクション5.2 Python関数パラメータを収集」コンテンツ概念的収集パラメータを参照)可変数の引数をサポートしてもよいが、実際に符号化のコスト、サポートするために必要なコードを増加させパラメータを復号化し、一般的なコンストラクタは、特定のインターフェースが、外部インターフェイスを実装する必要性に使用することは推奨されていませんができるだけで、使用、コンストラクタにパラメータ名のパラメータを決定する明確な優先されている必要がありますときに呼び出さ可変フォーマットをサポートしています可変パラメータモードで部分を収集し、
文は、Noneを返す場合は3、コンストラクタ値を返さない、それは返さなければなりません。

Pythonプログラマとは接触を助けていない古い猿の学習Pythonの学習経験の漸進的な導入のための要約記事の旧猿のPython(https://blog.csdn.net/LaoYuanPython)シリーズは、簡単にはPythonを入力することができます世界。
批判を歓迎し、あなたの注意をありがとう!

おすすめ

転載: blog.csdn.net/LaoYuanPython/article/details/93512289