Python Glossary English

Python 3.9+pstatsпонятие

pstats.FunctionProfile

программный доступ

Датакласс со статистикой одной функции из профиля: ncalls, tottime, cumtime, время на вызов, файл и строка.

Синтаксис

fp = stats.get_stats_profile().func_profiles['имя']

Получают его из Stats.get_stats_profile().func_profiles, а не создают сами. Ловушка: ncalls — строка, а не число, потому что у рекурсии она вида '177/1'; сравнение ncalls > 100 падает с TypeError, а int('177/1') — с ValueError. Числа лежат в tottime и cumtime (секунды, float), file_name и line_number указывают, где функция определена.

Примеры

import cProfile, pstats
def fib(n):
    return n if n < 2 else fib(n - 1) + fib(n - 2)
with cProfile.Profile() as pr:
    fib(10)
fp = pstats.Stats(pr).get_stats_profile().func_profiles['fib']
print(type(fp).__name__)  # → FunctionProfile
print(repr(fp.ncalls))  # → '177/1'
print(isinstance(fp.cumtime, float))  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности