python - 如何获取函数内的调用类名

标签 python

我有 2 个类,其方法名为 pick_up_phone

class Work(object):

   def pick_up_phone(self):
       make_call()

class Home(object):

    def pick_up_phone(self):
       make_call()

函数make_call不是该类的一部分。如何在函数本身中打印激发该函数的类的名称,而不向该函数传递任何内容?

例如...

def make_call()
  print(????__.class__.__name__)???? <--- prints Home or Work class

最佳答案

您可以使用inspect模块:

from inspect import getouterframes, currentframe


def make_call():
    print getouterframes(currentframe())[-1][-2][0]


class Work(object):
    def pick_up_phone(self):
        make_call()


class Home(object):
    def pick_up_phone(self):
        make_call()


Home().pick_up_phone()
Work().pick_up_phone()

输出:

Home().pick_up_phone()

Work().pick_up_phone()

关于python - 如何获取函数内的调用类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115602/

相关文章:

python - 如何使用 PyGTK/Gtkbuilder 重复显示对话框?

Python:是否有更好的方法从 pandas 的 DataFrame 中删除数据范围?

python - 在 Xcode for Mac 中编译和链接 Python 的 C 扩展

python - Selenium:避免 ElementNotVisibleException 异常

python - 用第一个值减去 Pandas 数据框中的一列

python - 取决于计算 groupby 对象中两个列单元格之间的差异的列

python - 我如何从 linux 的后台检测 python 中的组合键?

python - 比较两个不同数据框 pandas 的列

python - 如何获取 Python 递归中使用的堆栈帧总数?

python - docker compose up 生成 (2005, "Unknown MySQL server host ' db' (-2)") 错误