Python面向对象编程高级特性详解
1. 列表类的实现与标准操作符支持
在Python中,有时我们需要创建一个类似列表的类,但默认情况下,它可能不支持Python的标准操作符。例如:
len(a)
# Fails. No __len__() method
a[0]
# Fails. No __getitem__() method
为了让类支持这些操作,我们需要显式实现所需的特殊方法。以下是一个示例:
class ListLike:
def __init__(self):
self._items = list()
def __getattr__(self, name):
return getattr(self._items, name)
def __len__(self):
return len(self._items)
def __getitem__(self, index):
return self._items[index]
def __setitem__(self, index, value):
self._items[index] = value
这个 ListLike 类成功地将所有标准列表方法转发到内部列表,并且通过实现 __len__ 和 __getitem__
Python面向对象高级特性解析
超级会员免费看
订阅专栏 解锁全文

7977

被折叠的 条评论
为什么被折叠?



