一千萬個為什麽

搜索

Python:將dict中的變量加載到命名空間中


我想在函數外部使用函數中定義的一堆局部變量。所以我在返回值中傳遞 x = locals()

如何將該字典中定義的所有變量加載到函數外部的命名空間中,以便不使用 x ['variable'] 訪問該值,而只需使用 variable </代碼>。

最佳答案

考慮 Bunch 替代方案:

class Bunch(object):
  def __init__(self, adict):
    self.__dict__.update(adict)

所以,如果您有一個字典 d ,並希望使用語法 x.foo 而不是clumsier d ['foo'] <�來訪問(讀取)其值/ code>,就這麽做

x = Bunch(d)

這適用於內部和外部函數 - 並且非常比將 d 註入 globals()更清晰,更安全!記住Python的Zen的最後一行......:

>>> import this
The Zen of Python, by Tim Peters
   ...
Namespaces are one honking great idea -- let's do more of those!

轉載註明原文: Python:將dict中的變量加載到命名空間中

猜你喜歡