谈谈Python 面向对象 容器类
时间: 2023-07-05 15:16:08 浏览: 110
在 Python 面向对象编程中,容器类是指可以包含其他对象的类,例如列表、元组、字典等。Python 中的容器类通常都实现了一些特殊的方法,使得它们可以像原生的容器一样使用。
下面是一个简单的例子,演示了如何实现一个自定义的容器类:
```python
class MyList:
def __init__(self, *args):
self.data = list(args)
def __len__(self):
return len(self.data)
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
def __delitem__(self, index):
del self.data[index]
def __iter__(self):
return iter(self.data)
def __contains__(self, value):
return value in self.data
```
在上面的例子中,我们定义了一个名为 `MyList` 的类,它实现了容器类的一些常用方法,包括 `__init__`、`__len__`、`__getitem__`、`__setitem__`、`__delitem__`、`__iter__` 和 `__contains__`。
我们通过 `__init__` 方法初始化了一个列表,然后通过 `__len__` 方法返回列表的长度,通过 `__getitem__` 方法实现了按下标访问元素的功能,通过 `__setitem__` 和 `__delitem__` 方法实现了设置和删除元素的功能,通过 `__iter__` 方法实现了迭代列表的功能,通过 `__contains__` 方法实现了判断元素是否存在的功能。
现在我们可以使用 `MyList` 类来创建一个列表对象,并像使用原生列表一样使用它:
```python
mylist = MyList(1, 2, 3)
print(len(mylist)) # 3
print(mylist[0]) # 1
mylist[0] = 0
print(mylist[0]) # 0
del mylist[0]
print(len(mylist)) # 2
for item in mylist:
print(item) # 2, 3
print(2 in mylist) # True
print(0 in mylist) # False
```
总之,容器类是 Python 面向对象编程中非常重要的一个概念,可以帮助我们更加灵活地处理数据,同时也为我们提供了许多常用的数据结构和算法实现。在编写自己的容器类时,我们可以根据需要实现容器类所需的特殊方法,从而实现自定义的容器类。
阅读全文