Я хочу использовать набор локальных переменных, определенных в функции, за пределами функции. Таким образом, я являюсь передающим x=locals()
в возвращаемом значении.
Как я могу загрузить все переменные, определенные в том словаре в пространство имен вне функции, так, чтобы вместо того, чтобы получить доступ к использованию значения x['variable']
, Я мог просто использовать variable
.
Рассмотрите альтернативу 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!