這可能以前曾被問到過,但快速搜索沒有給我一個答案。Python:在函數的本地命名空間中包含詞典條目
假設有一個包含所有變量的字典。我如何將這個字典傳遞給函數的本地名稱空間?例如:
data = dict(a=1,b=2,c=3,d=4)
def f(data):
return data['a'] + data['d']
要求在每個想要訪問的變量周圍寫入數據['']。如何將字典的所有條目添加到函數的本地名稱空間?對於對象,你可以使用
self.__dict__.update(data)
有什麼等價物的功能,讓你得到的線沿線的東西:
data = dict(a=1,b=2,c=3,d=4)
def f(data):
add_to_local_namespace(data)
return a + d
我有這個問題是爲什麼?這似乎是非pythonic。如果你想要他們的值,爲什麼不傳遞字典索引作爲參數呢? –
@DylanLawrence該字典還將用作函數中進一步對類對象的輸入。由於在類中使用了不少變量,我不想在創建對象時將它們全部寫下來。正如我從另一個包含輸入的模塊調用這些函數,我需要通過所有的輸入。 – Forzaa
字典是一個可變對象,你在函數內部改變的東西會反映原來的,就像在Python中它通過對象引用一樣。 –