클래스 자바스크립트 목록 메소드

| | | | | | | | | | | | | | | |

Python 메서드의 인수 는 괄호 안에 지정해야 합니다. 이는 함수와 메서드가 호출되었는지 여부를 나타내기 위해 괄호를 사용하기 때문입니다. 대괄호를 사용하여 메서드를 호출하면 "TypeError: `method` object is notsubscriptable" 오류가 발생합니다.

이 가이드에서는 이 오류의 의미와 오류가 발생할 수 있는 이유를 설명합니다. 그것을 만나다. 솔루션 개발에 도움이 되도록 이 오류의 예를 살펴보겠습니다.

TypeError: `method` 개체가 구독되지 않았습니다.

구독 가능한 개체 는 __getitem__ 메서드가 있는 개체입니다. 목록, 사전 및 튜플과 같은 데이터 유형입니다. __getitem__ 메서드를 사용하면 Python 인터프리터가 컬렉션에서 단일 항목을 검색할 수 있습니다.

모든 항목이 구독되는 것은 아닙니다. 예를 들어 메서드는 그렇지 않습니다. 이는 __getitem__ 메서드를 구현하지 않기 때문입니다. 즉, 괄호로 묶인 구문을 사용하여 메서드의 요소에 액세스하거나 메서드를 호출할 수 없습니다.

다음 코드 스니펫을 고려하세요.

이 코드는 인덱스 0의 위치에 있는 치즈인 "Edam"을 반환합니다. 함수와 메서드는 구독할 수 있는 개체가 아니므로 대괄호를 사용하여 함수나 메서드를 호출할 수 없습니다.

p>

예시 시나리오

여기서 우리는 객체에 치즈를 저장하는 프로그램을 만듭니다. "Cheese`" 우리가 치즈를 정의하는 데 사용하는 클래스에는 치즈가 특정 원산지 국가에서 왔는지 여부를 확인할 수 있는 메서드가 있습니다.

클래스를 정의 하십시오. 이 클래스를 치즈라고 부르겠습니다.

우리 클래스에는 두 가지 메서드가 있습니다. 첫 번째 메서드는 Cheese 객체의 구조를 정의합니다. 두 번째는 치즈의 원산지 국가가 특정 값과 같은지 확인할 수 있습니다. < br>

그런 다음 , 치즈 클래스에서 객체를 생성해 보겠습니다.

변수 "edam"은 객체입니다. 치즈와 관련된 이름은 Edam이고 원산지는 네덜란드입니다.

다음으로 get_country() 메서드를 호출합니다.

이 코드는 get_country() 메서드. get_country ( )는 "edam" 개체의 "origin" 값이 "Germany"와 같은지 확인합니다.

코드를 실행하고 무엇을 확인 발생:

코드에 오류가 발생했습니다.

다음 줄을 분석해 보겠습니다. Python 디버거가 잘못된 것으로 식별한 코드:

이 코드 줄에서 대괄호를 사용하여 get_country() 메서드를 호출합니다. 목록의 항목에 액세스하는 데 대괄호가 사용되기 때문에 이것은 허용되지 않는 구문입니다. 함수 및 개체가 구독되지 않기 때문에 대괄호를 사용하여 호출할 수 없습니다.

이 오류를 수정하려면 다음이 필요합니다. 대괄호를 중괄호로 바꾸려면:

코드를 실행하고 어떤 일이 발생하는지 봅시다.

코드가 제대로 작동하고 있습니다. Edam이 "네덜란드" 출신인지 확인하여 우리가 지정한 값이 치즈의 원산지 국가와 동일한지 여부에 관계없이 모든 경우에 우리의 기능이 작동하는지 확인합니다.

코드 반환:

지정한 값이 치즈의 원산지와 같은 경우 코드가 작동합니다.

결론

클래스 내에서 메서드를 호출하기 위해 대괄호를 사용할 때 "TypeError: `method` not subscribable" 오류가 생성됩니다. 이 오류를 해결하려면 호출하려는 메서드 이름 뒤에 중괄호를 사용하여 클래스의 메서드만 호출해야 합니다.

이제 다음과 같이 일반적인 Python 오류를 해결할 준비가 되었습니다. 전문 프로그래머 !