2016-06-08 4 views
0

클래스의 메서드를 가져와야합니다. 클래스에 메서드가 없으면 가장 가까운 부모에 메서드가 있어야합니다. 그 또 다른 방법은 해당 클래스의 인스턴스에서 메서드를 호출하여 호출 할 메서드를 찾는 것입니다.클래스 또는 그 부모에 대한 메서드 얻기

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

클래스에

+1

클래스에서 메서드를 가져올 수 없습니까? 클래스에 없지만 부모 클래스에있는 경우 클래스에서 메서드를 가져 오면 부모 메서드가 제공됩니다 – Daenyth

+0

@Daenyth - 예! 왜 내가 그게 아니라고 생각하는지 모르겠다. – Maximilian

답변

1

속성 조회가 이미 필요한 별도의 코드로, 기본 클래스를 검색합니다 (내가 감각이 내 현재 솔루션,이 질문에 응답하기 위하여려고하고있어 최적되지 않습니다). 그냥 수행

@classmethod 
def _init_args(cls): 
    return getargspec(cls.__init__).args[1:] 

당신은 (파이썬 3의 클래스의 유일한 종류있는) 만 새로운 스타일의 클래스에이를 사용하는 경우, 당신은 항상 있기 때문에, 상속 트리에 어딘가에 __init__ 방법을 찾을 수 있습니다 object에는 하나가 있습니다 (모든 새로운 스타일의 클래스는 궁극적 인 기본 클래스로 object입니다).

관련 문제