2

我收到“TypeError:'Phone' 类型的对象没有 len()”和“'Phone' 对象没有属性 ' 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
4

1 回答 1

1

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

self.number = number 

应该覆盖数字方法

但似乎问题如下:

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

所以number方法numberPhone实例。

似乎您正在尝试number像使用字符串一样使用 this(即 self)进行操作,因此您遇到了以下异常:

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

于 2013-10-26T20:12:59.377 回答