의 클래스 (없는 경우)에 바인딩 된 메서드를 감지, 나는 f
이 방법을 구속 여부되어 있는지 확인하기 위해 (obj
이 C
의 인스턴스) inspect.ismethod(obj.f)
를 사용합니다. 객체를 만들지 않고 클래스 수준에서 직접 동일한 작업을 수행 할 수 있습니까?함수 또는 메소드 <code>f</code>와 클래스 <code>C</code>을 감안할 때 파이썬 3
inspect.ismethod이 작동하지 않습니다
class C(object):
@staticmethod
def st(x):
pass
def me(self):
pass
obj = C()
결과를이에 (파이썬 3) :
>>> inspect.ismethod(C.st)
False
>>> inspect.ismethod(C.me)
False
>>> inspect.ismethod(obj.st)
False
>>> inspect.ismethod(obj.me)
True
을 내가 기능/방법의 구성원인지 확인해야 추측 클래스가 아닌 정적이지만 쉽게 할 수 없었습니다. 여기에 표시된대로 classify_class_attrs
을 사용하여 작업을 완료 할 수 있다고 생각합니다. How would you determine where each property and method of a Python class is defined? 그러나 나는 다른 직접적인 방법이 더 있었으면합니다.
이것은 Python ** two **에만 유용하지만, 언 바운드 방식이없는 Python ** three **에 관해서는 특별히 묻습니다. –