gpt4 book ai didi

python - 函数被调用的次数

转载 作者:太空狗 更新时间:2023-10-30 01:45:31 25 4
gpt4 key购买 nike

假设我想将 x**2 从 0 积分到 1。我使用 scipy.integrate.quad 来实现:

from scipy import integrate
def f(x): return x**2
I = integrate.quad(f, 0, 1)[0]
print(I)

问题有什么方法可以知道用户定义的函数fquad调用了多少次?我想这样做,因为我很想知道 quad 使用了多少来计算积分。

最佳答案

当然。使用调用计数包装器:

import functools
def counted_calls(f):
@functools.wraps(f)
def count_wrapper(*args, **kwargs):
count_wrapper.count += 1
return f(*args, **kwargs)
count_wrapper.count = 0
return count_wrapper

并将包装后的版本传递给quad:

wrapped = counted_calls(f)
integrate.quad(wrapped, 0, 1)
print(wrapped.count)

Demo ,调用次数为 21。

我特别避免使用全局计数器或使用 counted_calls 作为 f 定义的装饰器(尽管如果需要,您可以将其用作装饰器),以便更容易地进行单独计数。使用全局变量或将其用作装饰器,您必须记住每次都手动重置计数器。

关于python - 函数被调用的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52448773/

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