云南网站建设,企业信息化软件定制开发

专业提供昆明网站建设, 昆明软件开发, 云南网站建设,企业信息化软件定制开发服务免费咨询QQ932256355

博客园 首页 新随笔 联系 订阅 管理

Python 特殊方法:容器与序列操作基础(一)

本文讲解容器协议的核心方法,包括 __len____getitem____setitem____delitem____contains__,展示如何通过这些方法让自定义类具备基本的容器功能,如获取长度、索引访问、元素赋值和删除以及成员检查。


__len__方法:

返回容器的长度,用于支持 len() 函数。例如,定义一个自定义容器类,实现 len 方法:

class MyList:
    def __init__(self, data):
        self.data = data
    def __len__(self):
        return len(self.data)
my_list = MyList([1, 2, 3])
print(len(my_list))

__getitem__方法:

实现通过索引或键访问容器元素,支持 [] 操作。例如,实现一个自定义字典类,通过键获取值:

class MyDict:
    def __init__(self, data):
        self.data = data
    def __getitem__(self, key):
        return self.data[key]
my_dict = MyDict({'a': 1, 'b': 2})
print(my_dict['a'])

__setitem__方法:

实现通过索引或键设置容器元素,支持 [] 赋值操作。例如,在自定义列表类中实现元素赋值:

class MyList:
    def __init__(self, data):
        self.data = data
    def __setitem__(self, index, value):
        self.data[index] = value
my_list = MyList([1, 2, 3])
my_list[1] = 10
print(my_list.data)

__delitem__方法:

实现通过索引或键删除容器元素,支持 del 操作。例如,在自定义列表类中实现元素删除:

class MyList:
    def __init__(self, data):
        self.data = data
    def __delitem__(self, index):
        del self.data[index]
my_list = MyList([1, 2, 3])
del my_list[1]
print(my_list.data)

__contains__方法:

实现 in 运算符的逻辑,用于判断元素是否在容器中。例如,在自定义集合类中实现成员检查:

class MySet:
    def __init__(self, data):
        self.data = data
    def __contains__(self, item):
        return item in self.data
my_set = MySet([1, 2, 3])
print(2 in my_set)

参考资料:

参考 Python 官方文档中关于容器类型的说明(https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range ),结合 Tekin 的 Python 专栏中关于数据结构实践的文章( https://blog.csdn.net/tekin_cn/article/details/145797911 ),帮助读者理解这些方法在构建自定义容器类中的重要性。

总结:

本文总结了容器协议基础方法的定义和使用,强调它们是构建自定义容器类的基石,为后续学习更复杂的容器和序列操作奠定基础。

  • TAG:Python、特殊方法、容器协议、序列操作、索引访问
posted on 2025-03-03 15:10  TekinTian  阅读(20)  评论(0)    收藏  举报