是否可以在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

08-28 05:43