内置方法进阶 __len__()

本文介绍了Python内置函数len()的使用范围及其工作原理。len()可用于list、dict、set、tuple和str等类型,但不适用于int和float。通过定义类的方法__len__(),可以为自定义对象赋予len()功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

len()属于内置函数,可以在list,dict,set,str中用,而对于int和float是不能使用len()这个内置函数的

print('__len__' in dir(list))  # True
print('__len__' in dir(dict))  # True
print('__len__' in dir(set))   # True
print('__len__' in dir(tuple))  # True
print('__len__' in dir(str))  # True

print('__len__' in dir(int))  # False
print('__len__' in dir(float))  # False

# 证明__len__这个方法在类list,dict,set,tuple,str中都存在,而在类int和float中是不存在的
# 而对象执行len() 时触发了此方法

# 例
class Class:  
    def __init__(self, name, course):
        self.name = name
        self.course = course
        self.students = []

    def __len__(self):
        return len(self.students)

s1 = Class('class 1', 'Big Data')
s1.students.append('a')
s1.students.append('b')
s1.students.append('c')  # 改变对象属性
print(len(s1))  # 3  触发__len__方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值