AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
Python でリストを操作する場合、データ型に対してさまざまな操作 (メソッド) を実行できます。 それらを効果的にエラーなく使用するには、それらがどのように機能するかを理解する必要があります。
これらのメソッドを使用するには、その構文、エラー、および操作モードを知る必要があります。 これらの多くのメソッドの 1つは 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
は読み取り専用であり、この状態が原因で参照または代入操作が失敗しています。
データが append
である読み取り専用の場合、アクセスはできますが、変更はできません。 したがって、私たちのコードには、'list' オブジェクト属性 'append'
を変更しようとする式があります。
簡単な Python コードを使用して、同じエラー メッセージを再現してみましょう。
このコードでは、要素のリストを保持する変数 shopList
を作成します。 次に、別の変数 value
が文字列 toothpick
にバインドされます。
その後、shopList
の内容を出力します。 最後に、バインディング value
をリスト 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
と呼ばれます。 コードはバインド 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']
したがって、index
などの他のメソッドでも同じエラーが発生する可能性があるため、AttributeError
が発生した場合は構文を確認してください。
コード:
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
今回のエラーは、append
ではなく、AttributeError: 'list' object attribute 'index' is read-only
です。
構文には常に注意してください。
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn