如何从被调用者类

时间:2017-09-13 10:06:37

标签: python function

我有3个班级 -

  1. ATEST
  2. BMain
  3. CUtil
  4. CUtil我需要以下功能 -

    class CUtil(object):
        def __init__(self):
            print("hi")
            if(topmost calling function is from ATest):
                print("ok")
            print("bye")
    

    所以测试用例就像这样 -

    1. 来自ATest创建CUtil对象。输出 - “hi ok bye”
    2. 来自BMAin创建CUtil对象。输出 - “hi再见”
    3. ATest创建BMain对象和BMain的构造函数创建CUtil对象。输出 - “嗨,再见”。由于最顶层的调用类是ATest
    4. BMain创建ATest对象和ATest的构造函数创建CUtil对象。输出 - “再见”。由于最顶层的调用类是BMain
    5. 无论如何我可以获得这些功能吗?

1 个答案:

答案 0 :(得分:0)

我认为你可以使用

stack = inspect.stack()
the_class = stack[1][0].f_locals["self"].__class__