我有類
class A。
def __init__(self):
print(i was used by :)
# 如果我從下面的函式中呼叫這個類,那么?
def my_func()。
a = A()
# I need class A to print that "i was used in: my_func() "
對此有什么解決方案嗎?
CodePudding
如果你知道函式名稱:
你可以試試這樣的方法:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309343.html
標籤:
