exe c () некорректно работает в функции Spyder - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь использовать функцию для создания экземпляров класса. Я делаю это так, потому что создаю базу данных и хочу записать все имена объектов.

Я пытаюсь использовать 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
...