擅长:python、mysql、java
<p>好吧,它已经被有效地阻止了,从某种意义上说,调用<code>a()</code>不起作用。在</p>
<p>但是要在定义函数时停止它,我想您必须更改<code>__init__</code>来检查<code>num</code>的类型:</p>
<pre><code>def __init__(self,num):
if callable(num):
raise TypeError('Printer decorator takes an argument')
self.__num=num
</code></pre>
<p>不过,我不知道这样做是否值得。它已经不能按原样工作了;您实际上要求在duck类型的语言中强制执行参数类型。在</p>