ホームページ >バックエンド開発 >Python チュートリアル >Python は関数呼び出しの数を制限します
以下は Python で関数呼び出しの数を制限する方法の例です。これは良い参考値であり、皆さんの役に立つことを願っています。一緒に見てみましょう
次のコードは、一定期間内の特定の関数の呼び出し数を制限します
インスピレーション源: Python デコレーター - 関数呼び出しの数を制限するメソッド (10 秒に 1 回呼び出します) ) ようこそ
オリジナルブログへ キャッシュを指定しており、ここでアクセス数を制限するように変更しましたが、結果は同じです
#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()
関連おすすめ:
デコレーターとスレッドを使用してPythonで関数の実行時間を制限する方法
以上がPython は関数呼び出しの数を制限しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。