栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python魔法方法(8):

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python魔法方法(8):

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__()的返回值自定义,则返回输入参数的长度。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号