NameError: 이름 'List'가 정의되지 않았습니다.
나는 왜 이것이 작동하지 않는지 정말로 확신할 수 없습니다.여기 코드의 중요한 부분이 있습니다(릿코드 챌린지에서 온 것입니다).첫 번째 줄은 NameError를 던집니다.
def totalFruit(self, tree: List[int]) -> int:
pass
가져오기를 시도하는 경우List
먼저 오류가 발생합니다.No module named 'List'
아나콘다의 파이썬 3.7.3을 사용하고 있습니다.
목록에서 허용해야 하는 유형에 주석을 달 수 있으려면 다음을 사용해야 합니다.typing.List
from typing import List
그래서 당신은 수입했습니까?List
?
갱신하다
Python > 3.9를 사용하는 경우 @Adam을 참조하십시오.Er8의 대답
Python 3.9 이후에는 기본 제공 컬렉션 유형(예:list
)에서 해당 대문자로 표시된 유형을 가져오는 대신 일반 유형으로 사용합니다.typing
.
이것은 PEP 585 덕분입니다.
따라서 Python 3.9 이상에서는 실제로 다음과 같이 쓸 수 있습니다.
def totalFruit(self, tree: list[int]) -> int: # Note list instead of List
pass
아무것도 수입하지 않아도 됩니다.
유형 힌트에서 str 목록을 지정하려면 다음을 사용할 수 있습니다.typing
패키지 및from typing import List
(자본화됨, 내장된 기능과 혼동하지 않음)list
)
다음과 같은 목록을 정의하는 경우a = [1,2,3]
,그리고나서type(a)
돌아올 것입니다<class 'list'>
그 말은 그것이 내장된 것에 의해 만들어질 것이라는 것을 의미합니다.list
.
그List
반환 형식에 주석을 달 때 유용합니다.예를 들어 Python3를 사용하는 함수 시그니처는 다음과 같습니다.def threeSumClosest(self, nums: List[int], target: int) -> int:
https://leetcode.com/problems/integer-to-roman/ 에서 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/57505071/nameerror-name-list-is-not-defined
'programing' 카테고리의 다른 글
MongoDB에서 여러 컬렉션 검색 (0) | 2023.05.24 |
---|---|
MVVM 매드니스: 명령 (0) | 2023.05.24 |
움직이는 평균 판다 (0) | 2023.05.24 |
제약 조건 변경을 애니메이션화하려면 어떻게 해야 합니까? (0) | 2023.05.24 |
Angular 2 경로가 존재하지 않는 경우 404 또는 다른 경로로 리디렉션하는 방법 (0) | 2023.05.14 |