“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')
。
以下是错误发生方式的示例。
主要.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
.
额外资源
您可以通过查看以下教程了解有关相关主题的更多信息: