Как можно найти Класс вызывания функции в Python?

Я пытаюсь определить класс владения функции вызова в Python. Например, у меня есть два класса, ClassA и ClassB. Я хочу знать, когда classb_instance.call_class_a_method () является вызывающей стороной class_a.class_a_method () таким образом что:

class ClassA(object):
    def class_a_method(self):
        # Some unknown process would occur here to
        # define caller. 
        if caller.__class__ == ClassB:
            print 'ClassB is calling.'
        else:
            print 'ClassB is not calling.'

class ClassB(object):
    def __init__(self):
        self.class_a_instance = ClassA()
    def call_class_a_method(self):
        self.class_a_instance.class_a_method()

classa_instance = ClassA()
classa_instance.class_a_method()
classb_instance = ClassB()
classb_instance.call_class_a_method()

вывод был бы:

'ClassB is not calling.'
'ClassB is calling.'

Кажется, как будто осматривают, должен смочь сделать это, но я не могу разрешить как.

5
задан boldfield 1 August 2010 в 19:27
поделиться