Python begrenzt die Anzahl der Funktionsaufrufe

不言
Freigeben: 2018-04-21 14:33:23
Original
3333 Leute haben es durchsucht

Das Folgende ist ein Beispiel dafür, wie die Anzahl der Funktionsaufrufe in Python begrenzt werden kann. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist. Werfen wir gemeinsam einen Blick darauf

Der folgende Code begrenzt die Anzahl der Aufrufe einer bestimmten Funktion in einem bestimmten Zeitraum,

Inspirationsquelle: Python Decorator – Methode zur Begrenzung der Anzahl der Funktionen Anrufe (alle 10 Sekunden einmal anrufen) Willkommen bei Besuch

Der ursprüngliche Blog gibt Caching an, ich habe es hier geändert, um die Anzahl der Besuche zu begrenzen, es ist das Gleiche

#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(&#39;调用次数: %s&#39; % cache[key][0])
  print(&#39;限制次数: %s&#39; % 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&#39;m foo")
if __name__==&#39;__main__&#39;:
 for i in range(10):
  foo()
Nach dem Login kopieren

#test.py
from newtest import foo
import time
for i in range(30):
 foo()
print(&#39;*&#39;*20)
foo()
foo()
print(&#39;*&#39;*20)
for i in range(60):
 print(i)
 time.sleep(1)
for i in range(11):
 foo()
Nach dem Login kopieren

Verwandte Empfehlungen:

Pythons Methode zur Verwendung von Dekoratoren und Threads, um die Funktionsausführung einzuschränken Zeit


Das obige ist der detaillierte Inhalt vonPython begrenzt die Anzahl der Funktionsaufrufe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!