我正在嘗試以下操作;如何返回locals(),然後在另一個函數中重新定義它們?
def a():
a = ...
b = ...
...
n = ...
return locals()
def b(**kwargs):
"""Some function that would assign all keys and values in this function"""
print(a)
print(d)
if __name__=="__main__":
b(**a())
我的變量一個長長的清單,我想這樣做,而不是做
def a():
a = ...
b = ...
...
n = ...
return a,b,c,d,e ... n
def b(a,b,c,d,e ... n):
print(a)
print(d)
if __name__=="__main__":
a,b,c,d,e ... n = a()
b(a,b,c,d,e,f ... n)
我試着exec
和locals().update(dict)
擺弄周圍以上,但這些都沒有爲我工作。
有什麼理由不能在'b'中使用'kwargs ['a']'? –
'b'已經寫好。我將不得不通過並將'b'中的每個變量都更改爲'kwargs ['n']'。這可以起作用,但似乎並不是實現這一目標的最佳方式。我寧願在'b'簽名或其前幾行添加一些東西。 – p014k
[python從字典條目創建變量]可能的重複(http://stackoverflow.com/questions/22675221/python-create-variables-from-dictionary-entries) – DyZ