Python: переменные загрузки в dict в пространство имен

Я хочу использовать набор локальных переменных, определенных в функции, за пределами функции. Таким образом, я являюсь передающим x=locals() в возвращаемом значении.

Как я могу загрузить все переменные, определенные в том словаре в пространство имен вне функции, так, чтобы вместо того, чтобы получить доступ к использованию значения x['variable'], Я мог просто использовать variable.

59
задан dreftymac 16 June 2017 в 15:51
поделиться

1 ответ

Рассмотрите альтернативу Bunch :

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

, так что если у вас есть словарь d и хотите получить доступ (прочитать) его значения с помощью синтаксиса x.foo вместо более неуклюжего d ['foo'] , просто сделайте

x = Bunch(d)

это работает как внутренние, так и внешние функции - и это намного чище и безопаснее, чем вводить d в глобальные объекты () ! Помните последнюю строчку из Дзэн Питона ...:

>>> import this
The Zen of Python, by Tim Peters
   ...
Namespaces are one honking great idea -- let's do more of those!
88
ответ дан 24 November 2019 в 18:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: