


`example = list(...)`가 때때로 `TypeError: 'list' object is not callable`을 발생시키는 이유는 무엇입니까?
Dec 07, 2024 am 09:35 AM"example = list(...)"를 실행하면 "TypeError: 'list' Object Is Not Callable"이 발생하는 이유는 무엇입니까?
REPL에서 예제 변수가 문자열의 문자 목록을 보유할 것으로 기대하면서 "example = list('easyhoss')" 코드를 시도했는데 다음 오류가 발생했습니다. "TypeError: 'list' 개체가 아닙니다. callable".
이 문제는 내장 Python 클래스 "list"를 목록 인스턴스로 덮어썼기 때문에 발생합니다. 나중에 "example = list('easyhoss')"에서 "list"를 참조하면 Python은 이를 호출할 수 없는 인스턴스로 해석했습니다.
이를 이해하려면 Python의 네임스페이스와 범위 지정 메커니즘을 살펴봐야 합니다.
네임스페이스: Python은 중첩된 네임스페이스를 사용하여 개체 이름(클래스 및 함수 포함)을 저장합니다. 각 모듈에는 내장 함수 및 클래스를 포함하여 자체 네임스페이스가 있습니다.
범위 지정: 이름을 참조할 때 Python은 로컬 네임스페이스를 먼저 확인합니다. 찾을 수 없으면 이름을 찾거나 더 이상 네임스페이스를 찾을 수 없을 때까지 더 높은 수준의 네임스페이스로 이동합니다(NameError 발생).
귀하의 경우에는 자신도 모르게 "list" 인스턴스를 전역 "목록" 변수:
example = list('easyhoss') # "list" refers to the built-in class list = list('abc') # Creates a "list" variable referencing an instance of "list" example = list('easyhoss') # "list" refers to the instance, resulting in the error
이 덮어쓰기는 내장된 "목록" 클래스를 숨겨서 "TypeError."
이 오류를 방지하려면 이름 섀도잉을 강조하는 Python 플러그인과 함께 PyCharm 또는 Atom과 같은 IDE를 사용하십시오.
추가 고려 사항:
- "목록"은 인스턴스를 트리거하는 호출 가능한 클래스입니다.
- "목록"(list[]) 인스턴스는 호출할 수 없습니다.
- 클래스 및 인스턴스에 대한 자세한 내용은 Python 설명서를 참조하세요.
대화형 Python 세션을 시작하면 자체 네임스페이스가 있는 임시 모듈이 생성되며 이는 네임스페이스 동작에도 영향을 미칠 수 있습니다.
위 내용은 `example = list(...)`가 때때로 `TypeError: 'list' object is not callable`을 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

핫툴 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?
