一、了解__len__方法
__len__是Python内置方法之一,用于获取对象的长度。其定义如下:
def __len__(self): return 0
可以看到,__len__方法的返回值为整型,表示对象的长度。需要注意的是,只有实现了__len__方法的对象才能被len()函数调用。
接下来,通过以下三个方面来详细介绍如何使用__len__方法获取对象的长度。
二、使用__len__方法获取字符串长度
字符串是Python中常用的数据类型之一,也是可以使用__len__方法获取长度的对象。
s = "Hello World" print(len(s)) # 输出 11 print(s.__len__()) # 输出 11
当调用len()函数时,其内部会调用对象的__len__方法来获取对象的长度。
三、使用__len__方法获取列表长度
列表是Python中常用的容器类型之一,也是一个实现了__len__方法的对象。
lst = [1, 2, 3, 4, 5] print(len(lst)) # 输出 5 print(lst.__len__()) # 输出 5
同样的,当调用len()函数时,其内部会调用对象的__len__方法来获取对象的长度。
四、自定义对象的__len__方法
除了Python内置对象,我们也可以自定义对象的__len__方法。
class MyObject: def __init__(self): self.data = [1, 2, 3, 4, 5] def __len__(self): return len(self.data) obj = MyObject() print(len(obj)) # 输出 5
在这个例子中,我们创建了一个自定义对象MyObject,并重写了其__len__方法。该方法返回了MyObject对象中所存储的data列表的长度。
上述代码中的len(obj)实际上会自动调用obj.__len__()方法,从而获取MyObject对象的长度。
五、总结
__len__方法是Python中一个重要的内置方法,用于获取对象的长度。除了Python内置对象,我们也可以自定义对象的__len__方法来实现能够被len()函数调用的对象。在使用__len__方法时,我们可以直接调用len()函数,也可以使用对象的__len__()方法。