Python 类型错误:';str';无法为append()调用对象
您有一个方法Python 类型错误:';str';无法为append()调用对象,python,Python,您有一个方法append(用self.append引用),带有一个参数append,然后该方法调用传递的参数append。但是在main中,调用对象的append方法并向其发送字符串。请记住,在该方法中,您正在调用传递的参数。因为那个参数是字符串,所以不能调用它 类中的另一个方法,displayList,执行与append完全相同的操作,只是调用它时根本没有参数,这也会生成错误 不要试图通过预加self(print(self.append())或print(self.displayList(0)
append
(用self.append
引用),带有一个参数append
,然后该方法调用传递的参数append
。但是在main
中,调用对象的append
方法并向其发送字符串。请记住,在该方法中,您正在调用传递的参数。因为那个参数是字符串,所以不能调用它
类中的另一个方法,displayList
,执行与append
完全相同的操作,只是调用它时根本没有参数,这也会生成错误
不要试图通过预加self
(print(self.append())
或print(self.displayList(0))
来解决这些问题,因为这将超过最大递归深度
您的列表
类的列表
也是一个类变量,而不是实例变量。那以后可能会导致更多的问题
我建议你退后一步,再想想你想做什么,为什么。如果你创建这个课程是为了娱乐/教育,可能有。如果你把它作为一个实用程序的一部分(即,将它作为一个特定挑战的解决方案),你可能会有一个。猜怎么着?这是因为字符串对象不可调用您的输入和输出是什么?问题出现在
def append(self,append):print(append())
中,是否确实要将参数append
作为函数调用?您试图在这里实现什么?
#!/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()