python的

您所在的位置:网站首页 python里len函数怎么用 python的

python的

2024-07-11 18:21| 来源: 网络整理| 查看: 265

初学__len__()的时候始终不明白为什么要定义__len__(),甚至觉得类中有没有__len__()都无所谓,有的时候len()仍然能正常执行。但是经过几次尝试终于明白有的时候为什么要定义__len__()。首先__len__()的作用是返回容器中元素的个数,要想使len()函数成功执行,必须要在类中定义__len__()。而len()的执行指的是在命令窗口输入len(),而在程序中一般情况下即使不定义__len__()程序中的len()函数也能成功执行。个人认为其实二者并没有多大差别,主要还是看在命令窗口的行为,你是输入的是len(对象)还是len(对象.属性)。 在这里插入图片描述 在这里插入图片描述 以上程序的类中定义了__len__()函数,*args是可变长度的参数,它接收到数据后打包成元组,再利用for循环将数据传递给列表。当在命令窗口写入len(c1)时,由于定义的__len__()的返回值是返回具体的实例对象的列表长度,所以在命令窗口直接输入len(c1)就可以输出列表的长度。 在这里插入图片描述 在这里插入图片描述 如果没有定义__len__(),那在命令窗口输入len(c1)会提示出错,显然错误原因是因为CountList类中并没有len()的定义。因为len()必须接收一个具体的实例化对象的属性,如果改成len(c1.values)也能成功执行! 对于类而言,len()函数是没有办法直接计算类的长度的,因为在类中包含着众多的属性以及方法,是一种抽象的实体。如果在类中没有定义__len__()方法来指明程序到底该计算哪个属性的长度时,在终端我们必须采用len(对象.属性)才能得到我们想要的结果。如果终端直接采用len(对象)的方法,显然程序会报错,提示类并没有len()方法。类不同于字符串、元组、列表、字典等数据类型,对于后者,它们是实实在在能通过len()方法直接计算出长度,是具体的实体。 但是就封装性而言,还是定义__len__()比较好,因为用户无需知道具体的属性是什么,只需要一个实例化对象即可。如果属性是私有的,那么无疑定义__len__()是最好的办法。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3