我希望改变Python列表显示的行为,使其产生我编写的
以下是我的操作步骤:
完成这一步之后,代码将返回列表中的第三个元素:
但是仍然会出现错误:
错误非常明显:
list
子类,而不是产生一个普通的list
。(注意:我认为这不是一个好主意;我只是出于兴趣而做。)以下是我的操作步骤:
old_list = list
class CallableList(old_list):
def __init__(self, *args):
old_list.__init__(self)
for arg in args:
self.append(arg)
def __call__(self, start, end=None):
if end:
return self[start:end]
return self[start]
list = CallableList
完成这一步之后,代码将返回列表中的第三个元素:
x = list(1, 2, 3)
print x(2)
但是仍然会出现错误:
x = [1, 2, 3]
print x(2)
错误非常明显:
Traceback (most recent call last):
File "list_test.py", line 23, in <module>
print x(2)
TypeError: 'list' object is not callable
我认为可能没有办法做到这一点,但是我找不到任何明确说明的信息。有什么想法吗?
list
)添加方法。 - Ignacio Vazquez-Abrams__init__
不是应该返回新对象吗? - badp