是否可以在python中重载[]
运算符?
我想通过调用classname[elementname]
(如字典中)来访问类的方法。
这看似不必要,但该类将包含子元素的数据库元素封装在一起,这些子元素也具有子元素,而子元素也具有...的子元素。
如果我从第3个继承步骤中知道哪个孩子想要得到,则可以代替:
classnname.getChild(childname1).getChild(childname2).getChild(childname3)
使用更短更清洁的产品:
classnname[childname1][childname2][childname3]
最佳答案
您必须在__getitem__
上实现魔术方法classname
class classname:
def __getitem__(self, key):
return self.getChild(key)
见Python documentation