>백엔드 개발 >파이썬 튜토리얼 >Python 클래스 내에서 메서드 목록을 얻는 방법은 무엇입니까?

Python 클래스 내에서 메서드 목록을 얻는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-29 20:40:02290검색

How to Obtain a List of Methods within a Python Class?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.