__getitem__ 소개: Python의 매직 메서드

__getitem__ 소개: Python의 매직 메서드

소스 노드 : 2011206

__getitem__ 소개: Python의 매직 메서드
작성자 별 이미지

Python은 고급 사용자라도 익숙하지 않을 수 있는 많은 개념을 포함하는 마법의 언어입니다. Dunder 또는 Magical 방법이 그중 하나입니다. 매직 메소드는 이중 밑줄로 둘러싸인 특수 메소드입니다. Python의 일반적인 메서드와 달리 명시적으로 호출되지 않습니다. 그러한 마법의 방법 중 하나는 __getitem__ 메서드를 사용하면 Python 객체가 목록, 사전, 튜플과 같은 시퀀스나 컨테이너처럼 동작할 수 있습니다. 인덱스나 슬라이스를 가져와서 컬렉션에서 관련 값을 검색합니다. 사용할 때마다 자동으로 호출됩니다. indexer [ ] 연산자를 사용하여 개체 내의 요소에 액세스합니다.

이 방법을 단지 몇 줄의 코드만 작성하면 필요한 정보를 추출할 수 있는 능력을 부여하는 마술 지팡이라고 생각하십시오. 흥미롭죠? 이 방법은 데이터 분석 및 기계 학습에도 널리 사용됩니다. 그럼, 좀 더 자세히 알아보겠습니다. __getitem__ 방법을 찾아보고 그 힘과 유연성을 발견해 보세요.

Python 프로그래머로서 귀하의 의무는 단순히 기능적인 코드를 작성하는 것 이상임을 이해하시기 바랍니다. 코드는 효율적이고 읽기 쉽고 유지 관리가 가능해야 합니다. 사용 __getitem__ 이러한 목표를 달성하는 데 도움이 될 것입니다. 이 마법의 방법을 사용하면 다음과 같은 몇 가지 다른 이점이 있습니다.

  • 전체 데이터 구조를 메모리에 로드하는 대신 필수 정보만 추출할 수 있도록 하여 메모리 사용량을 줄입니다.
  • 데이터 처리 및 조작 방법에 있어 더 큰 유연성을 제공합니다.
  • 데이터를 반복하지 않고 컬렉션을 반복할 수 있습니다.
  • 내장 유형으로는 불가능할 수 있는 고급 인덱싱을 작성할 수 있도록 하여 기능을 향상시킵니다.
  • 익숙한 표기법을 사용하여 코드를 단순화합니다.

에 대한 구문 __getitem__ 방법은 다음과 같습니다.

def __getitem__(self, index): # Your Implementation pass

 

이는 함수의 동작을 정의하고 해당 매개변수에서 액세스하려는 인덱스를 사용합니다. 이 방법을 다음과 같이 사용할 수 있습니다.

my_obj[index] 

 

이는 다음 진술로 해석됩니다. my_obj.__getitem__(index) 후드. 이제 내장된 것과 어떻게 다른지 생각할 수도 있습니다. indexer [] 운영자? 이 표기법을 사용할 때마다 Python은 자동으로 다음을 호출합니다. __getitem__ 메소드는 요소에 액세스하기 위한 약어입니다. 그러나 사용자 정의 개체에 대한 인덱싱 동작을 변경하려면 명시적으로 __getitem__ 방법.

예 #01

먼저 쉬운 예부터 시작해 보겠습니다. 우리는 모든 학생의 목록을 갖고 있는 Student 클래스를 생성할 것이며, 색인으로 접근할 수 있고 색인이 학생의 고유한 학생 ID를 나타내는 것으로 간주할 것입니다.

class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])

 

출력:

 

이제 다음을 사용하여 인덱싱 동작을 변경하는 고급 예제로 넘어갑니다. __getitem__ 방법. 문자열 요소 목록이 있고 색인 위치를 입력할 때마다 요소를 검색하고 문자열 자체를 입력하면 색인 위치를 얻을 수도 있다고 가정해 보겠습니다.

class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green']) 

 

출력:

red
green
0 2

이 방법은 인스턴스 속성을 빠르게 조회하는 데 매우 유용합니다. 이 방법의 유연성과 다양성을 고려하면 이것이 Python에서 가장 잘 활용되지 않는 매직 방법 중 하나라고 말하고 싶습니다. 이 기사를 재미있게 읽으셨기를 바랍니다. Python의 다른 매직 메서드에 대해 알고 싶다면 댓글 섹션에 알려주시기 바랍니다.
 
 
칸월 메린 데이터 과학 및 의료 분야의 AI 응용에 큰 관심을 가진 소프트웨어 개발자 지망생입니다. Kanwal은 APAC 지역의 Google Generation Scholar 2022로 선정되었습니다. Kanwal은 유행하는 주제에 대한 기사를 작성하여 기술 지식을 공유하는 것을 좋아하며 기술 산업에서 여성의 대표성을 개선하는 데 열정적입니다.
 

타임 스탬프 :

더보기 너 겟츠