2012-04-06 11 views
1

私は何かのように見えるクラスを作った。コンストラクタは自己のPythonを継承します

class NewInt: 
    def __init__(self, x,y): 
    self.holders = {"x":x,"y":y} 

今、私は数字を辞書といいます。だから、すべてはそのNewIntが、

A {"x": 3,"y":4} 

だから、その辞書を除いて、正確にタイプNewIntであるようdict.Somethngない以外

まったく同じです。

私は忘れてしまったが、割り当てが行われ、このようなコンストラクタに特別な名前があった

this_int = NewInt(A) 

ような何かを行うことができる方法はあります?あなたはkeyword argumentsを使用することができます おかげ

+1

「this_int = NewInt(** A)」を試してみてください。 –

+1

より一般的なケースでは、[PEP 3124](http://www.python.org/dev/peps/pep-3124/)を見て、Pythonへのオーバーロードを導入することで、さまざまなコンストラクタを簡単に作成できます入力に基づいて –

答えて

4

:ところで

A = {"x": 3,"y":4} 
this_int = NewInt(**A) 

は、それはあなたがcomplex numbersを再実装しているように見ています。それらはすでにPythonに組み込まれています。complex(3,4)または3+4jを試してみてください。

+0

ディクショナリに余分なキーワードがある場合に** kwargs引数を追加する必要があります。そうしないと、予期しないキーワードの引数に対してTypeErrorが発生します。 – Darthfett

関連する問題