是否可以重新定义括号 [] 使用哪个对象?
我可以子类化list
对象,但如何使解释器使用我的子类代替内置列表对象?是否可以?
(我很确定我在这个问题上使用了错误的术语 - 请随意编辑)
>>> 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
>>>
我对此没有实际用途——只是好奇。
括号是语言的一部分。它们用于创建列表。不可能重新定义它(也不可取!)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)