이 글에서는 주로 Python에서 내장형 확장 방법을 소개합니다. Python에서 내장형 확장과 하위 클래스 확장의 구체적인 구현 기술을 예제를 기반으로 분석합니다.
예제는 다음과 같습니다. 이 문서에서는 Python 내장 유형의 메서드 확장 구현을 설명합니다. 다음과 같이 참조할 수 있도록 모든 사람과 공유하세요.
소개
새로운 유형의 객체 메서드를 구현하는 것 외에도 때로는 Python 내장 유형을 확장하여 다음과 같은 다른 유형의 데이터 구조를 지원할 수도 있습니다. 대기열 삽입 및 삭제를 위한 Add 메서드를 나열합니다. 이 문제에 대한 응답으로 이 기사에서는 컬렉션 함수 구현의 예를 결합하여 Python의 내장 유형을 확장하는 두 가지 방법, 즉 내장 유형을 내장하여 유형을 확장하고 서브클래싱을 통해 유형을 확장하는 방법을 소개합니다.
내장 유형을 내장하여 확장
다음 예제에서는 목록 개체를 내장 유형으로 사용하여 컬렉션 개체를 구현하고 일부 연산자 오버로딩을 추가합니다. 이 클래스는 Python의 목록과 추가 집합 작업을 래핑합니다.
class Set: def __init__(self, value=[]): # Constructor self.data = [] # Manages a list self.concat(value) def intersect(self, other): # other is any sequence res = [] # self is the subject for x in self.data: if x in other: # Pick common items res.append(x) return Set(res) # Return a new Set def union(self, other): # other is any sequence res = self.data[:] # Copy of my list for x in other: # Add items in other if not x in res: res.append(x) return Set(res) def concat(self, value): # value: list, Set... for x in value: # Removes duplicates if not x in self.data: self.data.append(x) def __len__(self): return len(self.data) # len(self) def __getitem__(self, key): return self.data[key] # self[i] def __and__(self, other): return self.intersect(other) # self & other def __or__(self, other): return self.union(other) # self | other def __repr__(self): return 'Set:' + repr(self.data) # print() if __name__ == '__main__': x = Set([1, 3, 5, 7]) print(x.union(Set([1, 4, 7]))) # prints Set:[1, 3, 5, 7, 4] print(x | Set([1, 4, 6])) # prints Set:[1, 3, 5, 7, 4, 6]
하위 클래스를 통해 유형 확장
Python 2.2부터 모든 내장 유형은 list, str, dict 및 tuple과 같은 하위 클래스를 직접 생성할 수 있습니다. 이를 통해 사용자 정의 클래스 문을 통해 내장 유형을 사용자 정의하거나 확장할 수 있습니다. 유형 이름을 하위 클래스화하고 사용자 정의합니다. 유형의 하위 유형 인스턴스는 원래 내장 유형이 나타날 수 있는 모든 곳에서 사용할 수 있습니다.
위 내용은 Python 확장 내장형 구현 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!