python3 关于类 len定义的问腿
class LenSupport:def __len__(self):
return 42
>>> obj = LenSupport()
>>> len(obj)
42
我的问题是:len(obj)为何返回的是42,是因为LenSupport改变了自身的__len__方法么?有没有哪位大神能帮助我理解理解 双下滑线的__len__魔法方法就是在调用len()方法的行为,len(obj)调用时的行为就是return 42 嗯,被覆盖了。但是只是针对这一个类所实例化的对象而已 def __len__()定义这个方法的时候就把原来的bif覆盖了 LenSupport默认继承object类,本身并没有__len__魔法方法哦,你添加了这个魔法方法的话然后又实例化了一个对象obj,当len(obj)时就会自动调用__len__方法里的代码啊,也就是return 42 这个跟你输入什么没关系吧,反正return都是42
页:
[1]