Здравствуйте разработчики,глобальная переменная не работает питон
я пишу код, который принимает пользовательский ввод и инициализирует класс в зависимости от мощности, как в примере кода ниже:
class X:
def __init__(self):
return
def run(self):
print("i am X")
def func1(cls):
exec("global " + cls.lower())
exec(cls.lower() + " = " + cls + "()")
def func2(mode_to_set):
exec(mode_to_set.lower() + ".run()")
но, как я запустить такой код:
я получаю эту ошибку:
Traceback (most recent call last):
File "/Users/noahchalifour/Desktop/test.py", line 16, in <module>
func2('X')
File "/Users/noahchalifour/Desktop/test.py", line 13, in func2
exec(mode_to_set.lower() + ".run()")
File "<string>", line 1, in <module>
NameError: name 'x' is not defined
Может ли кто-нибудь мне помочь?
Переменная должна уже существовать в глобальном масштабе. Кроме того, это ужасная ИДЕЯ. Кроме того, вы пытаетесь создать экземпляр 'x', но ваш класс называется' X'. –
Почему это так плохо? @MorganThrapp –
Возможный дубликат [Как создать переменное число переменных в Python?] (Http://stackoverflow.com/questions/1373164/how-do-i-create-a-variable-number-of-variables -in-python) –