擅长:python、mysql、java
<p>您得到的错误是因为您创建的<code>p</code>属性的参数顺序错误</p>
<p>尝试:</p>
<pre><code>p = property(getx, setx, delx, 'i am doc') # getter before setter!
</code></pre>
<p>发生此错误的原因是在应调用<code>setx</code>时调用了<code>getx</code>。因为他们有不同数量的争论,这是破坏性的</p>
<p>请注意,设置属性的一种更优雅的方法是在定义访问器方法时使用decorator:</p>
<pre><code>@property
def p(self): # formerly getx
'i am doc'
return self.x
@p.setter
def p(self, value): # formerly setx
self.x = value
@p.deleter
def p(self): # formerly delx
del self.x
</code></pre>