메소드가 선언 된 클래스에 대한 참조를 얻으려면 어떻게해야합니까? 아래 코드에서 에 대한 참조를 test
에 가져 오려고합니다.파이썬에서, 메소드가 선언 된 클래스를 어떻게 결정할 수 있습니까?
class Classical:
def method():
pass
def test(func):
# How can I get a reference to 'Classical' using only 'func'?
pass
test(Classical.method)
나는 dir()
을 사용해 보았으며 아무 소용이 없다. 어떤 아이디어? (문제가 있다면 Python 3.1을 실행 중입니다.)
EDIT : 코드가 더 이해되도록 변경되었습니다.
클래스 및 메서드를 만든 후에 클래스를 확인하는 방법이 있습니까? 예를 들어, 클래스 본문 뒤에'test (Classical.method)'를 호출하면? – zildjohn01
@ zildjohn01 : CPython에서 언 바운드 메서드의 클래스에 액세스하려면'func.im_class'를 사용할 수 있지만 이것을 사용하지 말 것을 권장합니다. 아마도 문제에 대한 더 나은 해결책이있을 것입니다. 그리고 우리가 당신에게 무엇을 성취하려고하는지 말하면 우리는 당신에게 말할 수 있습니다. –
@zildjohn : 다시, 열심히. 'dir (Classical.method) '의 모습에서 전혀 불가능합니다. Python 3에 대해서는 http://stackoverflow.com/questions/4707288/get-functions-namespace-path – delnan