“list”对象的描述符“append”不适用于“str”对象

“list”对象的描述符“append”不适用于“str”对象

Descriptor ‘append’ for ‘list’ objects doesn’t apply to a ‘str’ object

append()当我们在类上调用该方法时,会出现 Python“TypeError:‘list’对象的描述符‘append’不适用于‘str’对象” list

要解决该错误,请改为调用类实例上的方法,例如
list().append('a')

列表对象的类型错误描述符附加不适用于 str

以下是错误发生方式的示例。

主要.py
# ⛔️ TypeError: descriptor 'append' for 'list' objects doesn't apply to a 'str' object list.append('hello') # ⛔️ TypeError: list.append(1)

我们调用了
导致错误的
列表
append类上的方法。

调用append()列表对象的方法

相反,调用对象append()上的方法list

主要.py
my_list = list() my_list.append('bobby') my_list.append('hadz') my_list.append('com') print(my_list) # 👉️ ['bobby', 'hadz', 'com']

我们使用括号来实例化列表类,并append()
在该类的实例上调用该方法。

使用方括号声明存储列表的变量

请注意,声明存储列表的变量的更常见方法是使用方括号。

主要.py
my_list = [] print(type(my_list)) # 👉️ <class 'list'> my_list.append('bobby') my_list.append('hadz') my_list.append('com') print(my_list) # 👉️ ['bobby', 'hadz', 'com']

上面的例子达到了相同的结果。

list.append ()方法将一个项目添加到列表末尾。

主要.py
my_list = ['a', 'b', 'c'] my_list.append('d') print(my_list) # 👉️ ['a', 'b', 'c', 'd']

该方法在改变原始列表时返回 None 。

确保不要将调用结果存储list.append()在变量中。

主要.py
a_list = [] # ⛔️ don't do this result = a_list.append('bobbyhadz.com') print(result) # 👉️ None print(a_list) # 👉️ ['bobbyhadz.com']

请注意,该result变量存储一个None值,因为该
list.append()方法会改变原始列表并返回None

将多个值添加到列表中

如果需要将多个值附加到列表中,请改用该extend()方法。

list.extend
方法接受一个可迭代对象(例如列表),并通过附加可迭代对象中的所有项目来扩展该列表

主要.py
my_list = ['a', 'b'] my_list.extend(['c', 'd', 'e']) print(my_list) # 👉️ ['a', 'b', 'c', 'd', 'e']

该方法在改变原始列表时list.extend返回。None

您可以打印list类和类的实例来查看两者之间的区别。

主要.py
print(list) # 👉️ <class 'list'> print(list()) # 👉️ []

对该print函数的第一次调用打印该类,而第二次调用则打印该类的实例。

您首先必须list实例化该类才能使用append.

额外资源

您可以通过查看以下教程了解有关相关主题的更多信息: