get_data
いくつかのキーワード引数を取る関数があるとします。これを行う方法はありますか
def get_data(arg1, **kwargs):
print arg1, arg2, arg3, arg4
arg1 = 1
data['arg2'] = 2
data['arg3'] = 3
data['arg4'] = 4
get_data(arg1, **data)
したがって、関数呼び出しと関数定義の両方で引数名を入力しないようにするという考え方です。辞書を引数として関数を呼び出すと、辞書のキーが関数のローカル変数になり、それらの値が辞書の値になります
上記を試したところ、エラーが発生しましたglobal name 'arg2' is not defined
。locals()
の定義を変更して、目的の動作を得ることができることを理解しget_data
ています。
したがって、私のコードは次のようになります
def get_data(arg1, kwargs):
locals().update(kwargs)
print arg1, arg2, arg3, arg4
arg1 = 1
data['arg2'] = 2
data['arg3'] = 3
data['arg4'] = 4
get_data(arg1, data)
そしてそれもうまくいきません。また、使用せずに動作を達成することはできlocals()
ませんか?