python函数调用次数,python统计函数调用次数

怎样让python多次调用函数.让函数返回的值相加

下面是一个例子,用 for 循环调用 10 次 test 函数,并把返回值加到 sum 变量中:

创新互联公司主营舒兰网站建设的网络公司,主营网站建设方案,重庆APP开发公司,舒兰h5微信平台小程序开发搭建,舒兰网站营销推广欢迎舒兰等地区企业咨询

#coding=utf-8

def test(n):

return n + 1

sum = 0

# 使用 for 循环调用 10 次 test 函数

for i in range(10):

# 调用 test 函数,并将返回值加到 sum 中

sum = sum + test(i)

print('sum = ' + str(sum))

python中如何限制输入次数

python 限制函数调用次数的实例讲解

发布时间:2018-04-21 09:58:18 作者:随便起个名字啊

下面小编就为大家分享一篇python 限制函数调用次数的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下代码,限制某个函数在某个时间段的调用次数,

灵感来源:python装饰器-限制函数调用次数的方法(10s调用一次) 欢迎访问

原博客中指定的是缓存,我这里换成限制访问次数,异曲同工

#newtest.py

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import time

def stat_called_time(func):

cache={}

limit_times=[10]

def _called_time(*args,**kwargs):

key=func.__name__

if key in cache.keys():

[call_times,updatetime]=cache[key]

if time.time()-updatetime 60:

cache[key][0]+=1

else:

cache[key]=[1,time.time()]

else:

call_times=1

cache[key]=[call_times,time.time()]

print('调用次数: %s' % cache[key][0])

print('限制次数: %s' % limit_times[0])

if cache[key][0] = limit_times[0]:

res=func(*args,**kwargs)

cache[key][1] = time.time()

return res

else:

print("超过调用次数了")

return None

return _called_time

@stat_called_time

def foo():

print("I'm foo")

if __name__=='__main__':

for i in range(10):

foo()

#test.py

from newtest import foo

import time

for i in range(30):

foo()

print('*'*20)

foo()

foo()

print('*'*20)

for i in range(60):

print(i)

time.sleep(1)

for i in range(11):

foo()

Python通过装饰器并使用cprofile对函数进行性能分析

Python中提供了很多接口方便我们能够灵活进行性能分析,包括cProfile模块中的Profile类和pstat模块中的Stats类。

--cprofile是一种确定性分析器,只测量CPU时间,并不关心内存的消耗情况和其他与内存相关联的信息

--它是基于Isprof的用C语言实现的扩展应用,运行开销比较合理,适合分析运行时间较长的程序

--enable(): 开始进行性能分析并收集数据

--disableI(): 停止性能分析

--create_stats(): 停止收集数据,并为已经收集的数据创建stats对象

--print_stats():创建stats对象并打印分析结果

--dump_stats(filename): 把当前性能分析的内容写入文件filename中

--runcall(func, *args, **kwargs): 收集被调用函数func的性能分析信息

--用来分析cProfile输出的文件内容

--pstas模块为开发者提供了Stats类,可以读取和操作stats文件

(Stats类可以接受stats文件名,也可以直接接受cProfile.Profile对象作为数据源。)

--strip_dirs(): 删除报告中所有函数文件名的路径信息

--dump_stats(filename): 把stats中的分析数据写入文件(也可以写成cProfile.Profile.dump_stats())

--sort_stats(*keys): 对报告列表进行排序,函数会一次按照传入的参数排序

--reverse_order(): 逆反当前的排序

--print_stats(*restrictions): 把信息打印到标准输出。*restrictions用于控制打印结果的形式,比如(10,1.0,".*.py.*")表示打印所有py文件的信息的前10行结果

--第一行表示运行这个函数一共使用0.043秒,执行了845次函数调用

--第二行表示结果是按什么顺序排列的(这里表示按照调用次数来进行排列的)

--ncalls: 表示函数调用的次数(有两个数值表示有递归调用,总调用次数/原生调用次数)

--tottime: 函数内部调用时间(不包括他自己调用的其他函数时间)

--percall: tottime/ncalls

--cumtime: 表示累计调用时间(函数执行玩的总时间),它包含了函数自己内部调用的函数时间

--filename:lineno(function): 函数所在的文件,行号,函数名称

上面的函数do_cProfile(do=False, order='tottime')是一个带参数的装饰器,通过do的值来进行性能分析的开关控制,通过order的值来选择输出结果按照什么方式进行排序。

比如我们对函数A和函数B进行性能分析

如果不给装饰器传入参数的话就是默认的False和tottime

python 统计 函数运行 次数。

你好:

我对代码做了注释:

#last是一个列表,里面只有一个元素,就是1,说明已经运行一次

def counter(last=[1]):

#last[0]将列表里面的第一个元素取出,然后加1,赋值给next

next = last[0] + 1

#修改列表里面第一个元素的值

last[0] = next

#返回此时运行的次数

return next

Python scrapy中怎么统计parse函数的执行次数

在spider类里面加个计数变量啊,然后再closed() 方法里面添加log,把计数给打印出来

class MySpider(scrapy.Spider):

def __init__(self):

self.count = 0

def parse(self, response):

self.count += 1

def closed(self):

log(self.count)

Python 函数循环调用

#脚本里面直接这样写就好了import randomdef R(): print (random.randint(1,1000))for i in range(1,10): R()


网站名称:python函数调用次数,python统计函数调用次数
网站地址:http://scjbc.cn/article/hedocg.html

其他资讯