Ce qui suit est un exemple de la façon de limiter le nombre d'appels de fonction en python. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble
Le code suivant limite le nombre d'appels à une certaine fonction dans une certaine période de temps,
Source d'inspiration : python decorator - méthode pour limiter le nombre de fonctions appels (appel une fois toutes les 10 secondes) Bienvenue pour visiter
Le blog d'origine précise la mise en cache, je l'ai changé pour limiter le nombre de visites ici, c'est la même chose
#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()
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!