我正在爲每個呼叫之間至少需要等待1秒的API構建包裝。我以爲我可以解決這個問題以下列方式使用裝飾:保證與裝飾者之間的電話間的最小等待時間
import datetime, time
last_time = datetime.datetime(2014, 1, 1)
def interval_assurer(f):
global last_time
if (datetime.datetime.now() - last_time).seconds < 1:
print("Too fast...")
time.sleep(1)
last_time = datetime.datetime.now()
return f
@interval_assurer
def post():
pass
這不會工作,雖然,出於某種原因,我不知道爲什麼。 last_time
在第一次調用post
時得到更新,但之後不會更新。請記住,這是我第一次嘗試裝飾器,所以我可能錯過了一些基本的東西。
謝謝。
我明白了!太好了謝謝。 –
我編輯過,用Python的修飾器的一些更高級特性添加更復雜的實現。 – jonrsharpe