Cómo limitar el número de entradas en Python
Un ejemplo de cómo limitar el número de llamadas a funciones en Python
Publicado el: 2018-04-21 09:58:18 Autor: Solo dale un nombre
A continuación, el editor compartirá con usted un ejemplo de cómo limitar el número de llamadas a funciones en Python. Tiene un buen valor de referencia y espero que sea útil para todos.
Sigamos al editor para echar un vistazo.
El siguiente código limita el número de llamadas a una determinada función en un determinado período de tiempo.
Fuente de inspiración: decorador de Python: limita el número de llamadas a funciones Método (llamado una vez cada 10 segundos) Bienvenido
El blog original especifica el almacenamiento en caché. Lo cambié para limitar el número de visitas aquí, que es el mismo pero el mismo resultado
<. p>#newtest.py#!/usr/bin/env python
#-*- coding:utf-8 -*-
hora de importación
def stat_Call_time(func):
cache={}
limit_times=[10]
def _Call_time(*args,* *kwargs):
clave= func.__name__
si la clave está en cache.keys():
[call_times,updatetime]=cache[clave]
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( 'Número de llamadas: %s' % cache[key][0])
print('Número de llamadas: %s' % limit_times[ 0])
if cache[key] [0] <= limit_times[0]:
res=func(*args,**kwargs)
cache[key][1] = time.time() p>
return res
else:
print("Se superó el número de llamadas") p>
return Ninguno
return _Call_time
@stat_Call_time
def foo():
print("Estoy foo")
if __name__=='__main__ ':
para i en el rango(10):
foo()
#test.py
de newtest import foo
tiempo de importación
para i en el rango(30):
foo()
imprimir('*'*20) p>
foo()
foo()
imprimir('*'*20)
para i en el rango(60): p>
imprimir(i)
time.sleep(1)
para i en el rango( 11):
foo()