擅长:python、mysql、java
<p>你可以用装饰工来做这个。在</p>
<p>使用基于类的装饰器:</p>
<pre><code>class callonce(object):
def __init__(self, f):
self.f = f
self.called = False
def __call__(self, *args, **kwargs):
if not self.called:
self.called = True
return self.f(*args, **kwargs)
print 'Function already called once.'
</code></pre>
<p>使用函数属性:</p>
^{pr2}$
<p>现在在函数上方添加decorator:</p>
<pre><code>@callonce
def func():
print "Creating Table"
</code></pre>
<p><strong>演示:</strong></p>
<pre><code>>>> func()
Creating Table
>>> func()
Function already called once.
>>> func()
Function already called once.
</code></pre>