在 Python 中使用列表时,我们可以对数据类型运行不同的操作(方法)。 我们必须了解它们的工作原理,才能有效且无误地使用它们。
要使用这些方法,我们需要知道它们的语法、错误和操作模式。 append() 方法是众多方法中的一种,它可以帮助我们将新元素添加到列表中。
但是,如果我们误用它,我们会得到一个 AttributeError: ‘list’ object attribute ‘append’ is read-only 的错误信息。
本文将向您展示导致此 AttributeError: ‘list’ object attribute ‘append’ is read-only 错误消息的原因以及解决方法。
使用正确的语法解决 AttributeError: ‘list’ object attribute ‘append’ is read-only
AttributeError: ‘list’ object attribute ‘append’ is read-only 错误消息是一个 AttributeError
,表示属性引用或赋值失败。
我们可以从错误消息中了解可能发生的情况。 对象属性追加是只读的,并且由于这种情况,引用或赋值操作失败。
当数据为只读时,也就是append,只能访问不能修改。 因此,在我们的代码中,有一个表达式试图修改’list’对象属性’append’。
让我们尝试使用简单的 Python 代码复制相同的错误消息。
在这段代码中,我们创建了一个变量 shopList,它包含一个元素列表。 然后,另一个变量 value 绑定到字符串 toothpick。
之后,它打印 shopList 的内容。 最后,它尝试将绑定值附加到列表 shopList。
代码:
shopList = ["banana", "orange", "sugar", "salt"]
value = "toothpick"
print(shopList)
shopList.append = value
输出:
['banana', 'orange', 'sugar', 'salt']
Traceback (most recent call last):
File "c:\Users\akinl\Documents\Python\alt.py", line 4, in <module>
shopList.append = value
AttributeError: 'list' object attribute 'append' is read-only
我们可以看到报错信息 AttributeError: ‘list’ object attribute ‘append’ is read-only 我们打算解决。 从错误中,我们知道错误的原因出现在第 4 行中。
下面的代码是第 4 行中的内容:
shopList.append = value
现在,这里出了什么问题?
该属性称为追加。 代码试图将绑定值分配给 append 方法,这会导致错误和异常,因为您不应该替换内置对象上的方法。
导致 AttributeError 的是关于如何使用 append 方法的 SyntaxError。 append
方法的正确使用方法如下:
shopList.append(value)
现在,让我们重写相同的代码。
shopList = ["banana", "orange", "sugar", "salt"]
value = "toothpick"
print(shopList)
shopList.append(value)
print(shopList)
输出:
['banana', 'orange', 'sugar', 'salt']
['banana', 'orange', 'sugar', 'salt', 'toothpick']
因此,当遇到 AttributeError 时,请检查您的语法,因为使用其他方法(例如 index.js)也可以看到相同的错误。
代码:
shopList = ["banana", "orange", "sugar", "salt"]
shopList.index = "banana"
输出:
Traceback (most recent call last):
File "c:\Users\akinl\Documents\Python\index.py", line 2, in <module>
shopList.index = "banana"
AttributeError: 'list' object attribute 'index' is read-only
这次错误是 AttributeError: ‘list’ object attribute ‘index’ is read-only 。
始终注意您的语法。