关于python的__len__函数问题

class Echo():
    def __init__(self, name):
        self.name = name
        print("Hello {}!".format(name))
    def __len__(self):
        n=0
        name=self.name
        for i in name:
            if i.isupper()==True:
                n=n+1;
        print("Hello {}!".format(n))
s = input()
echoA = Echo(s)
len(echoA)

想问一下各位,为何会报这个错'NoneType' object cannot be interpreted as an integer

潇潇雨雨
浏览 658回答 3
3回答

BIG阳

定义魔术方法 def __len__(self) 时,需要返回一个数值,,,即 __len__() should return >= 0。。你这里没有显示使用 return 语句,所以默认返回 None

弑天下

__len__:官方文档 该方法必须要有返回值,并且返回值为 integer >= 0.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python