擅长:python、mysql、java
<p>当<code>import</code>行完成时,所有函数都已定义。现在改变已经太晚了。然而,您<em>可以</em>做的是更改定义装饰器的方式,以便它可以接受更改。例如,您可以将其设置为一个类:</p>
<pre><code>class minSample:
MIN_SIZE = 10
def __init__(self, function):
self.function = function
def __call__(self, *args, **kwargs):
...
</code></pre>
<p>在<code>__call__</code>方法中,可以使用<code>self.MIN_SIZE</code>和<code>self.function</code>放置所有的装饰器代码。如果要更改<code>MIN_SIZE</code>,只需更改类变量:</p>
<pre><code>minSample.MIN_SIZE = 0
</code></pre>
<p>这样,装饰器就不会附加到原始的<code>MIN_SIZE</code>,而是可以在整个代码中根据需要进行多次更新。您甚至可以更新单个函数:</p>
<pre><code>inventory.MIN_SIZE = 5
</code></pre>