가 개발자 안녕하세요,전역 변수 작동하지 파이썬
i는 사용자의 입력을 받아 아래의 예제 코드에서와 같이 입력에 따라 클래스를 초기화 코드를 쓰고 있어요 :
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()")
하지만 등을 I
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
012 :이 오류가 계속
다음과 같은 코드를 실행
아무도 도와 줄 수 있습니까? 이런 식으로
def func2(mode_to_set):
globals()[mode_to_set]().run()
, 당신이 당신의 세계에 대해 부동 원치 않는 cruft에의 전체 무리가 없습니다 :
변수가 이미 전역 범위에 있어야합니다. 또한, 이것은 끔찍한 생각입니다. 게다가, 당신은'x'의 인스턴스를 만들려고합니다,하지만 당신의 클래스는'X'라고합니다. –
왜 그렇게 나쁜가요? @MorganThrapp –
가능한 변수 수를 어떻게 만들 수 있습니까? (http://stackoverflow.com/questions/1373164/how-do-i-create-a-variable-number-of-variables) -in-python) –