Pythonでは、いくつかの変数を読み込んで新しいオブジェクトを作成します。最も簡単な方法は、辞書を渡すことですが、それはプログラミングを非常に迷惑にします:self.healthの代わりに、私はself.params ['health']を常に呼び出さなければなりません。変数名(フィールド)を動的に設定する方法はありますか?Python:メソッド内で辞書を解凍する
私が持っている:
DEFAULT_PARAMS = {
'health': 10,
'position': []
}
def __init__(self, params = DEFAULT_PARAMS):
self.params = params
print self.params['health']
は私が持っていると思います:
DEFAULT_PARAMS = {
'health': 10,
'position': []
}
class Name():
def load(self, params):
# what goes here?
def __init__(self, params = DEFAULT_PARAMS):
self.load(params)
print self.health
Hmmm ...これは辞書内の「合成名」キーを考慮しません。 – khachik
@khachik:私は元々疑問を誤解していたので、かなり改訂しました。心配していますが、コンポジット名キーの意味がわかりません。 –
'* params'ではなく' ** params'を実際に使っていましたか?その方法では、 '__init __()'に渡されるすべてのパラメータが '(key、value)'のペアである場合にのみ動作します。これは不思議です。 –