TypeError:' str'对象不可调用append()

时间:2015-06-16 17:24:52

标签: python

#!/usr/bin/python
class List:
    list = []
    def append(self, append):
        print(append())
        #self.append = append

    def displayList(self, displayList):
        print(displayList())
        #print(self.append)



def main():
    list = List()
    list.append('abc')
    list.append('def')
    list.append('ghi')
    list.displayList()

if __name__ == '__main__':
    main()

2 个答案:

答案 0 :(得分:1)

您有一个方法append(引用self.append),参数append,然后该方法调用传递的参数append。但是在main中,您调用对象的append方法并向其发送字符串。请记住,在该方法中,您将调用传递的参数。由于该参数是一个字符串,因此无法调用它。

您班级中的另一种方法displayListappend做的完全相同,只是您在没有参数的情况下调用它,这也会产生错误。

请勿尝试通过预先selfprint(self.append())print(self.displayList(0)))来解决这些问题,因为这会超过最大递归深度。

您的List班级list也是一个类变量,而不是实例变量。这可能会在以后导致更多问题。

我建议退后一步,再想一想你要做什么以及为什么做。如果你是为了娱乐/教育创建这个课程,可能会better ways to learn。如果您将其作为实际计划的一部分(即将其用作特定挑战的解决方案),您可能会有XY Problem

答案 1 :(得分:0)

猜猜是什么?这是因为字符串对象不可调用