tMC*_*tMC 3 python list subclass object built-in-types
是否有可能重新定义括号[]使用哪个对象?
我可以子类化该list对象,但是如何让解释器使用我的子类代替buildin列表对象?可能吗?
(我很确定我使用的是错误的条款 - 随意编辑)
>>> class mlist(list):
... def __init__(self):
... list.__init__(self)
... def __getitem__(self, item):
... return list.__getitem__(self, item) * 2
...
>>> testlist = mlist()
>>> testlist.append(21)
>>> testlist[0]
42
>>> list = mlist() # maybe setting the 'list' type will do it?
>>> testlist = []
>>> testlist.append(21)
>>> testlist[0]
21 # Nope
>>>
Run Code Online (Sandbox Code Playgroud)
我没有实际用途 - 只是好奇.
括号是该语言的一部分.它们用于创建列表.重新定义它是不可能的(也不可取!).