我收到“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'"
