python的__len__()
时间: 2023-10-30 08:07:57 浏览: 50
__len__()是Python中的魔术方法之一,用于定义一个类的长度。它将返回容器中元素的个数,使得len()函数可以正确地计算容器的长度。在类中定义了__len__()方法后,当我们在命令窗口使用len(对象)时,实际上是调用了该对象所属类的__len__()方法来获取长度。
在没有定义__len__()方法的情况下,len()函数无法直接计算类的长度,因为类是抽象的实体,包含了许多属性和方法。如果想要计算类的长度,我们需要在命令窗口使用len(对象.属性)来指明具体要计算哪个属性的长度。如果我们直接使用len(对象),程序会报错,提示类没有定义len()方法。
封装性方面考虑,定义__len__()方法更好,因为用户无需知道具体的属性是什么,只需要使用实例化对象即可获取长度。如果属性是私有的,那么定义__len__()是最好的选择。
相关问题
python __len__
`__len__` 是 Python 中的一个特殊方法,用于返回对象的长度。当使用内置函数 `len()` 计算对象的长度时,Python 会调用该对象的 `__len__` 方法来获取长度。例如,对于一个字符串对象,可以通过 `len()` 函数获取字符串的长度,实际上是调用了该字符串对象的 `__len__` 方法。
以下是一个简单的示例,演示了如何在类中实现 `__len__` 方法:
```python
class MyClass:
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data)
my_obj = MyClass("Hello, world!")
print(len(my_obj)) # 输出 13
```
在上面的示例中,我们定义了一个名为 `MyClass` 的类,该类包含一个名为 `data` 的实例变量和一个 `__len__` 方法。在 `__len__` 方法中,我们返回了 `self.data` 的长度,以实现计算对象的长度。最后,我们创建了一个 `MyClass` 对象 `my_obj`,并通过 `len()` 函数获取了它的长度,输出结果为 13。
python中__len__
__len__ 是 Python 中的一个特殊方法(也称为魔术方法或双下划线方法),用于返回对象的长度或大小。当我们对一个对象使用内置函数 len() 时,Python 会自动调用对象的 __len__ 方法来获取其长度。
例如,如果我们定义了一个自定义类 MyList,可以通过实现 __len__ 方法来让该类的实例支持 len() 函数:
```
class MyList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items)
```
在上述示例中,我们在 MyList 类中定义了 __len__ 方法,该方法返回了 self.items 的长度。当我们使用 len() 函数来获取 MyList 对象的长度时,Python 会自动调用该方法。
```python
my_list = MyList([1, 2, 3, 4, 5])
print(len(my_list)) # 输出: 5
```
通过实现 __len__ 方法,我们可以自定义对象在使用 len() 函数时的行为,使其符合我们的需求。