Я хочу инициализировать экземпляр класса в функции с помощью "exec ()", а затем вернуть экземпляр .Но это не работает, хотя я добавил «globals ()» в параметры функции «exec ()».Вот мой код:
>>> class Foo:
def __init__(self):
print("hello world")
>>> def initialize():
fooInstance = None
exec('fooInstance = Foo()', globals())
print(fooInstance)
return fooInstance
>>> test = initialize()
hello world
None
>>> print(test)
None
Обычно вызывается функция класса " init ", но переменная " fooInstance " имеет значение НЕ изменен на объект Foo, содержит значение "None".
Я также проверил, используется ли exec () для инициализации экземпляра класса во внешнем объеме работ, и ответ - ДА.
>>> newInstance = None
>>> exec('newInstance = Foo()', globals())
hello world
>>> newInstance
<__main__.Foo object at 0x00000273AF151F60>
Буду признателен, если будут какие-либо решения для его инициализации в функции с использованием "exec ()".