Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在函数中获取调用类名_Python - Fatal编程技术网

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()