python中负数怎么用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()方法