【发布时间】:2021-09-20 16:29:53
【问题描述】:
假设我想实现我的自定义list 类,并且我想覆盖__getitem__ 以便可以使用默认None 初始化item 参数,并相应地执行:
class CustomList(list):
def __init__(self, iterable, default_index):
self.default_index = default_index
super().__init__(iterable)
def __getitem__(self, item=None):
if item is None:
item = self._default_index
return super().__getitem__(item)
iterable = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
my_list = CustomList(iterable, 2)
这允许my_list[None],但是像my_list[] 这样的东西本身就使用默认参数会很棒。
不幸的是,这引发了SyntaxError,所以我假设该语句在语法级别是非法的......我的问题是:为什么?会不会和其他一些说法有冲突?
我对此非常好奇,非常感谢愿意解释的人!
【问题讨论】: