Skip to main content
 首页 » 编程设计

python之获取错误 : TypeError: object of type 'Phone' has no len()

2025年05月04日9JeffreyZhao

我收到“TypeError:‘Phone’类型的对象没有 len()” 和“‘电话’对象没有属性‘getitem’” 谁能详细说说?

class Phone(object): 
 
    def __init__(self, number): 
        self.number = number 
 
    def number(number): 
        '''Test if the number is valid or not''' 
 
        for i in range(number): 
 
            n = ''.join(i for i in number if i.isdigit()) 
 
            if (len(n) >= 12) or (len(n) <= 9): 
                return '0' * 10 
            elif len(n) == 11 and n[0] != 1: 
                return '0' * 10 
            elif n[0] == 1 and len(n) == 11: 
                return n.pop[0] 
            else: 
                return n 

请您参考如下方法:

两个不同的异常让我认为您测试和提议的代码版本很少,其中一个不是您遇到这些错误的地方。因为在这种情况下

self.number = number  

应该覆盖数字方法

但似乎问题如下:

实例方法的第一个参数应该是self。在任何情况下,实例都作为第一个参数传递给绑定(bind)方法

所以 number 方法中的 number 是 Phone 实例。

看来您正在尝试像处理字符串一样使用此 number(它是 self)进行操作,因此您遇到了这些异常:

"TypeError: object of type 'Phone' has no len()" and "'Phone' object has no attribute 'getitem'"