Я пытаюсь использовать функцию для создания экземпляров класса. Я делаю это так, потому что создаю базу данных и хочу записать все имена объектов.
Я пытаюсь использовать exe c () для создания этих экземпляров класса, но, похоже, он не работает в Spyder, хотя он работает в стандартном python conole. Например:
def function(command):
exec(command, globals())
В стандартной консоли:
>>> function("x = 1")
>>> x
1
Тогда как в Spyder я получаю:
>>> function("x = 1")
>>> x
Traceback (most recent call last):
File "<ipython-input-266-6fcf9dfbd479>", line 1, in <module>
x
NameError: name 'x' is not defined
Я испортил несколько разных 'global' настройка et c, но безрезультатно. Был бы признателен за любую помощь. Спасибо.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: когда я запускаю сценарий, содержащий вызов функции в Spyder, похоже, работает exe c. Итак, если я запустил следующий сценарий:
def function(command):
exec(command, globals())
function("y = 8")
, тогда введите следующее:
>>> y
8
Однако, если я попытаюсь вызвать функцию в интерактивном окне:
>>> function("y = 6")
>>> y
8