您的位置:

用Python中的__len__方法获取对象长度

一、了解__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__()方法。