简介在Python中,__len__ 是一个特殊的魔术方法(也称为双下划线方法),它使得一个类的实例能够支持内置的 len() 函数。通过实现这个方法,我们可以让自定义的类拥有长度属性,就像内置的数据...
在Python中,__len__ 是一个特殊的魔术方法(也称为双下划线方法),它使得一个类的实例能够支持内置的 len() 函数。通过实现这个方法,我们可以让自定义的类拥有长度属性,就像内置的数据类型(如字符串、列表和元组)一样。
__len__ 方法应该返回一个整数,表示对象中元素的数量。这个方法通常用于需要表示长度的数据结构中,例如列表、字符串、元组等。
def __len__(self): # 返回对象中的元素数量 pass__len__ 方法必须返回一个整数。如果返回的不是整数,Python 将会抛出一个 TypeError。
下面,我们将通过一个具体的例子来展示如何使用 __len__ 方法让自定义类拥有长度属性。
class MyList: def __init__(self, items): self.items = items def __len__(self): return len(self.items)在这个例子中,我们定义了一个名为 MyList 的类,它接受一个列表作为输入,并将其存储在 self.items 属性中。我们通过实现 __len__ 方法,让 MyList 实例能够支持 len() 函数。
现在,我们可以创建 MyList 实例,并使用 len() 函数来获取其长度:
my_list = MyList([1, 2, 3, 4, 5])
print(len(my_list)) # 输出: 5__len__ 方法应该返回一个整数,否则会引发 TypeError。__len__ 方法中返回对象中元素的数量,而是直接返回一个整数值。__len__ 方法不应该改变对象的状态。通过实现 __len__ 方法,我们可以让自定义的类拥有长度属性,使其能够与内置数据类型一样使用 len() 函数。这是一个非常有用的特性,特别是在创建需要表示长度的数据结构时。