2012-01-29 6 views
1

を何を意味しています。は、次のスニペットは、私は次のソースコードの平均値を何、PythonのDjangoの初心者です、といくつかのオープンソースコードを経由して

class Sale(models.Model): 
    def __init__(self, *args, **kwargs): 
     super(Sale, self).__init__(*args, **kwargs) 

言語をシンプルにしてください。私は非コンピュータ科学のバックグラウンドであり、OOPを初めて利用しています。

+0

もっと深い意味を持つためには、これ以上の情報を提供する必要があります。 '__init__' **にはこの種の' super'構造が含まれていますが、それは実際には面白いことはありません。もっとコードがありましたか?もしそうなら、その中に何が入っているかのヒントを教えてください。 –

答えて

6
  1. models.Model
  2. イニシャライザは、イニシャライザを呼び出す位置引数(*args)及び任意のキーワード引数の任意の数を取るSaleの初期化子(**kwargs
  3. 定義のサブクラスであるクラスSale定義(super(Sale, self).__init__)が受け取ったすべての位置引数とキーワード引数を渡します。

基本的に、初期化子の引数を親クラスの初期化子に渡します。

+0

'super'呼び出しの後に他の文がない限り、これは基本的に' Sale'に '__init__'を定義しないのと同じです。 – delnan

+1

コンストラクタに他のものがない限り、かなり冗長です。 – Amber

+1

Quibble: '__init__'はコンストラクタではありません。初期化子です。オブジェクトは '__init__'を呼び出す前に完全に構​​築されています。 @DanielRoseman - legit。 –

関連する問題