python怎么查看函数调用次数
时间: 2024-09-20 19:18:24 浏览: 52
在Python中,你可以通过第三方库`wrapt`或者`functools`来查看函数的调用次数。以下是两种方法:
1. **使用`wrapt`库**:
首先安装`wrapt`库,然后创建一个包装器来追踪函数调用:
```python
import wrapt
def count_calls(func):
wrapper = wrapt.ObjectProxy(func)
wrapper.call_count = 0
@wrapt.decorator
def _count_calls(wrapped, instance, args, kwargs):
wrapper.call_count += 1
return wrapped(*args, **kwargs)
_count_calls.__name__ = func.__name__
return _count_calls
@count_calls
def my_function():
# 函数体...
# 现在每次调用my_function,call_count都会增加
my_function()
print(my_function.call_count) # 输出调用次数
```
2. **使用`functools`库**:
如果你想简单地计数每个函数实例的调用次数,可以使用`functools`模块的`lru_cache`装饰器配合一个字典来存储计数:
```python
from functools import lru_cache
call_counts = {}
@lru_cache(maxsize=None)
def my_function():
if id(my_function) not in call_counts:
call_counts[id(my_function)] = 0
call_counts[id(my_function)] += 1
# 函数体...
my_function()
print(call_counts[id(my_function)]) # 输出调用次数
```
注意,这两种方法都只适用于没有其他并发访问的情况,如果有线程安全需求,可能需要额外处理。
阅读全文