我知道python有一个len()用于确定字符串大小的函数,但我想知道为什么它不是字符串对象的方法.
好吧,我意识到我很尴尬.__len__()实际上是一个字符串对象的方法.使用字符串对象上的len函数在Python中看到面向对象的代码似乎很奇怪.此外,__len__将名称视为名称而不仅仅是len 也是奇怪的.
我最近一直在玩Python,有一件事我发现有点奇怪的是广泛使用'魔术方法',例如使其长度可用,一个对象实现一个方法,def __len__(self)然后它被调用时你写的len(obj).
我只是想知道为什么对象不是简单地定义一个len(self)方法并让它直接作为对象的成员调用,例如obj.len()?我确信Python必须有充分的理由这样做,但作为一个新手,我还没有弄清楚它们到底是什么.