3
다음 잘 작동합니다 다음 그러나_to_에 할당 된 변수 이름이 왜 값 조회에 영향을 미칩니 까? 파이썬에서
def test_foo():
class Foo(object):
pass
class Fam(object):
bar = Foo
test_foo()
이 NameError: name 'Foo' is not defined
와 함께 실패
def test_foo():
class Foo(object):
pass
class Fam(object):
Foo = Foo
test_foo()
가 왜
에 할당하고있어 이름이되고있는 값의 조회에 영향을 미치지 않습니다 배정 된?
을 시도하려는 경우 같은 일이 일어날 것입니다, 당신은'데프 test_foo()에 위의 코드를 삽입하는 것이 좋습니다. 모듈의 전역 범위에'foo'를 써서 쓰면,이 코드는 에러를 발생시키지 않습니다! – senderle
감사합니다. 개인적으로 나는 그것이 성가신 것을 알지만, 나는 거기에 좋은 이유가 있다고 확신한다. – Singletoned
@ 싱글 톤 : 주된 이유는 속도입니다. 바이트 코드에 이미 정보를 찾을 수 있기 때문에 로컬 변수를 찾는 것이 훨씬 빠릅니다. 이런 이유로 코드는 전역 범위에서보다 함수 내에서 더 빠르게 실행되는 경우가 많습니다. –