Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo limitar el número de entradas en Python

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()

return res

else:

print("Se superó el número de llamadas")

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)

foo()

foo()

imprimir('*'*20)

para i en el rango(60):

imprimir(i)

time.sleep(1)

para i en el rango( 11):

foo()