Python魔法方法(8):__len __(self) 方法
Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,它们是面向对象的 Python 的一切。它们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了某一个魔法方法,那么这个方法就会在特殊的情况下自动被 Python 所调用。......
·
Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,它们是面向对象的 Python 的一切。它们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了某一个魔法方法,那么这个方法就会在特殊的情况下自动被 Python 所调用。
功能
定义对象被 len() 函数调用时的行为。
参数
self 表示对象本身。
返回值
必须是一个整数,否则会抛出异常。
示例
class MyTest(object):
def __init__(self):
self.name = 'ab'
self.age = 22
def __len__(self):
# len() 函数一般返回对象(序列)的长度或元素个数
return len(self.__dict__)
sample = MyTest()
print(len(sample))
如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。 示例
class Students(object):
def __init__(self, *args):
self.names = args
def __len__(self):
return len(self.names)
s = Students('a', 'b', 'c')
print(len(s))
len()和__len__()的区别
1.用法:len(filename),filename.__len__()。
2.返回:len()返回所传入参数的长度;如果没有对__len__()的返回值自定义,则返回输入参数的长度,否则返回自定义的对象。
3.区别:len()是函数,__len__()是方法,如果没有对__len__()的返回值自定义,则返回输入参数的长度。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)