gpt4 book ai didi

python - 如何判断另一个类中的函数何时被调用

转载 作者:行者123 更新时间:2023-11-28 20:00:14 25 4
gpt4 key购买 nike

我有两个 Python 类,称它们为“C1”和“C2”。 C1 内部有一个名为“F1”的函数,C2 内部有一个名为“F2”的函数。有没有办法在每次运行 F1 时执行 F2 而无需从 F1 中直接调用 F2?是否有其他一些机制可以知道何时调用了另一个类内部的函数?

我欢迎任何建议,但想知道一些无需在 C1 中创建 C2 实例即可实现此目的的方法。

最佳答案

您可以编写一个小助手装饰器来为您进行调用。好处是看代码很容易知道谁要调用什么。您可以根据需要添加任意数量的函数调用。它的工作方式类似于注册回调函数:

from functools import wraps

def oncall(call):
def helper(fun):
@wraps(fun)
def wrapper(*args, **kwargs):
result = fun(*args, **kwargs)
call()
return result
return wrapper
return helper

class c1:
@classmethod
def f1(cls):
print 'f1'

class c2:
@classmethod
@oncall(c1.f1)
def f2(cls):
print 'f2'

>>> c2.f2()
f2
f1
>>> c1.f1()
f1

关于python - 如何判断另一个类中的函数何时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903818/

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