gpt4 book ai didi

python - 在python中查找哪个函数正在使用给定的类

转载 作者:行者123 更新时间:2023-12-01 23:15:24 25 4
gpt4 key购买 nike

我有课

class A:
def __init__(self):
print(i was used by :)

# if i call this class from the function below,

def my_func():
a = A()

# I need class A to print that "i was used in: my_func() "

有解决办法吗?

最佳答案

如果你知道函数名:

你可以尝试这样的事情:

class A:
def __init__(self, func):
print('i was used by:', func.__name__)

def my_func(func):
a = A(func)
my_func(my_func)

输出:

i was used by: my_func

您将指定函数实例,这是这里的最佳方式,然后只需使用 __name__ 来获取函数的名称。

如果您不知道函数名:

你可以试试 inspect模块:

import inspect
class A:
def __init__(self):
print('i was used by:', inspect.currentframe().f_back.f_code.co_name)

def my_func():
a = A()
my_func()

或者试试这个:

import inspect
class A:
def __init__(self):
cur = inspect.currentframe()
a = inspect.getouterframes(cur, 2)[1][3]
print('i was used by:', a)

def my_func():
a = A()
my_func()

两个输出:

i was used by: my_func

关于python - 在python中查找哪个函数正在使用给定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68992807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com