擅长:python、mysql、java
<p>它在语法上没有用处。在编程中使用<code>my_list[]</code>时,如果不进行硬编码,就没有一种有用的方法。一段代码有时不能在列表引用中包含变量,有时则不能。在这种情况下,为什么不使用另一个获取默认值的属性呢</p>
<pre><code>@property
def default(self):
return super().__getitem__(self.default)
@property.setter
def default(self, val):
super().__setitem__(self.default, val)
</code></pre>
<p><code>object.__getitem__(self, val)</code>被定义为具有必需的位置参数。Python是动态的,因此您可以不必更改该调用签名,但这不会改变所有其他代码使用它的方式</p>
<p>所有python操作符背后都有一个神奇的方法,这种神奇的方法总是可以比操作符公开更多的特性。为什么不让<code>+</code>有一个默认值?所以,<code>a = b + </code>是合法的。再一次,这在语法上是没有用的——如果你想公开一个函数,你可以直接公开它</p>