擅长:python、mysql、java
<p>如果查看系统上属性装饰器的代码,您会发现它包含三个参数:</p>
<ul>
<li><code>fget</code>:获取变量的函数</li>
<li><code>fset</code>:设置变量的函数</li>
<li><code>fdel</code>:删除变量的函数。你知道吗</li>
</ul>
<p>由于通常使用decorator修饰单个函数,因此通常只需定义getter:</p>
<pre><code>@property
def my_var(self):
return self._my_var
</code></pre>
<p>如果您还希望声明一个setter,您可以使用新的“属性”通过<code>.setter</code>包含一个setter:</p>
<pre><code>@my_var.setter
def my_var(self, value):
self._my_var = value
</code></pre>
<p>两者的结合相当于调用<code>my_var = property(get_my_var, set_my_var)</code>。你知道吗</p>