Доступ к элементу массива указателя структуры

Я не говорю, что это лучше, но для полноты я хотел предложить функцию exec , доступную как в python 2, так и 3. exec позволяет вам для выполнения произвольного кода в глобальной области или во внутренней области, предоставляемой в качестве словаря.

Например, если у вас есть модуль, хранящийся в "/path/to/module "с функцией foo(), вы может запустить его, выполнив следующие действия:

module = dict()
with open("/path/to/module") as f:
    exec(f.read(), module)
module['foo']()

Это делает несколько более явным, что вы загружаете код динамически и предоставляете вам дополнительную мощность, например, возможность предоставления настраиваемых встроенных функций.

И если вам нужен доступ через атрибуты, а не ключи, вы можете создать пользовательский класс dict для глобальных переменных, который обеспечивает такой доступ, например:

class MyModuleClass(dict):
    def __getattr__(self, name):
        return self.__getitem__(name)

-10
задан Varun Chhangani 15 June 2013 в 13:39
поделиться