擅长:python、mysql、java
<p>您可以通过创建一个可调用类来避免使用全局变量,该类的实例跟踪它们被调用的次数:</p>
<pre><code>class requester():
def __init__(self,cap = 1):
self.cap = cap
self.called = 0
def __call__(self):
if self.called < self.cap :
#code to be executed at most cap times goes here
print("requester called")
self.called += 1
</code></pre>
<p>测试方法如下:</p>
^{pr2}$
<p>输出:</p>
<pre><code>requester called
Now call three times:
requester called
requester called
requester called
</code></pre>
<p>现在,唯一会导致请求多次发出的是如果您创建<code>requester</code>的多个实例(或者向其构造函数传递一个大于1的数字)</p>
<p><strong>编辑时:</strong>对<a href="https://stackoverflow.com/a/4104188/4996248">this</a>问题的公认答案包含一个类似的想法,作为装饰器实现。在</p>