获取错误:TypeError:“Phone”类型的对象没有len()

时间:2013-10-26 20:02:34

标签: python

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

1 个答案:

答案 0 :(得分:1)

两个不同的例外情况让我认为您测试的代码版本很少,并且建议您不会遇到这些错误。因为在这种情况下

self.number = number 

应该覆盖数字方法

但似乎问题如下:

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

方法number中的numberPhone个实例。

您似乎正在尝试使用此number(这是自我)和字符串一起操作,因此您有以下例外:

  

“TypeError:'Phone'类型的对象没有len()”和“'Phone'对象没有属性'getitem'”