Python 如何在函数中获取调用类名
我有两个类,方法是Python 如何在函数中获取调用类名,python,Python,我有两个类,方法是pick\u-up\u-phone class Work(object): def pick_up_phone(self): make_call() class Home(object): def pick_up_phone(self): make_call() 函数make\u call不是类的一部分。如何在函数本身中打印引发函数的类的名称,而不向该函数传递任何内容 比如说像 def make_call() print(?
pick\u-up\u-phone
class Work(object):
def pick_up_phone(self):
make_call()
class Home(object):
def pick_up_phone(self):
make_call()
函数make\u call
不是类的一部分。如何在函数本身中打印引发函数的类的名称,而不向该函数传递任何内容
比如说像
def make_call()
print(????__.class__.__name__)???? <--- prints Home or Work class
def make_call()
打印(????类?名称 您可以从traceback模块获得调用堆栈(参见这里的示例),但正如Daniel所说,在大多数情况下,这是一种非常糟糕的方法。您可以使用该模块:
输出:
Home().pick_up_phone()
Work().pick_up_phone()
奇怪的要求。为什么不将其作为超类的一部分,或者将实例作为参数传递?这很奇怪,但示例解释了我不控制调用类而只控制函数的情况。我需要确定哪个类调用了我的函数。我知道如何使用self.\uuuuuu class.\uuuuuu name.\uuuuuuu.\uuuuuuuu.\uuuuuuuuuuu.\uuuuuuuuuuuuuuuuu.\uuuuuuuuuuuuuu
来实现这一点,但是,如果使用一个函数,这将不起作用。你可能的副本@peterwo。也许我只是不明白给出的答案。
Home().pick_up_phone()
Work().pick_up_phone()