난 그냥이 질문에 대한 답을 읽어 Accessing class variables from a list comprehension in the class definition하나의 클래스 변수가 목록 이해에 정의되지 않고 또 다른 변수는 왜입니까?
을 그것은 NameError: name 'x' is not defined
에 다음 코드 결과를 이유를 이해하라고하는 데 도움이 : x
목록에 대한 특별 범위에 정의되어 있지 않기 때문에
class A:
x = 1
data = [0, 1, 2, 3]
new_data = [i + x for i in data]
print(new_data)
NameError
가 발생 이해. 하지만 왜 다음 코드가 오류없이 작동하는지 이해할 수 없습니다.
class A:
x = 1
data = [0, 1, 2, 3]
new_data = [i for i in data]
print(new_data)
출력이 [0, 1, 2, 3]
입니다. 그러나 나는이 예 : NameError: name 'data' is not defined
을 기대했기 때문에 이전 예제 에서처럼 x
이라는 이름은 목록 이해 범위에 정의되어 있지 않습니다. 마찬가지로 data
이름도 목록 이해 범위에 정의되지 않았습니다.
왜 x
이 목록 이해 범위에 정의되어 있지 않지만 data
이 맞는지 이해해 주시겠습니까?