Python 클래스에서 메서드 목록 가져오기
클래스의 메서드를 반복하거나 메서드에 따라 개체를 다르게 처리하려면 그 방법의 목록. 이 문서에서는 이를 달성하기 위한 두 가지 접근 방식을 제공합니다.
inspect.getmembers() 사용
이 함수는 클래스 또는 인스턴스를 첫 번째 인수로 취하고 조건자 함수를 인수로 사용합니다. 두 번째 주장. 조건자 함수는 특정 기준에 따라 반환된 목록을 필터링합니다. 클래스의 메소드 목록을 검색하려면 Inspection.ismethod를 조건자 함수로 전달할 수 있습니다.
<code class="python">from inspect import getmembers, ismethod class MyClass: def method1(self): pass def method2(self): pass # Python 2.x methods = getmembers(MyClass, ismethod) # Python 3.x methods = getmembers(MyClass, isfunction)</code>
method 변수에는 튜플 목록이 포함되며, 각 튜플에는 메소드 이름과 메소드 객체가 포함됩니다. .
dir() 사용
dir() 함수는 메서드를 포함하여 객체의 모든 속성 목록을 반환합니다. 그러나 추가 필터링이 필요할 수 있는 비메서드 속성도 포함됩니다.
<code class="python">methods = [m for m in dir(MyClass) if callable(getattr(MyClass, m))]</code>
callable() 필터는 속성이 호출 가능한지 확인하여 메소드를 나타냅니다. 이 접근 방식은 메소드가 아닌 속성을 포함할 수 있으므로spect.getmembers()를 사용하는 것만큼 안정적이지 않을 수 있습니다.
위 내용은 Python 클래스 내에서 메서드 목록을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!