Python で NoneType オブジェクトに属性追加がありません

Salman Mehmood 2023年6月21日
Python で NoneType オブジェクトに属性追加がありません

この説明で、NoneType エラーについて学び、このエラーが発生する理由を確認します。 また、Python でこのエラーを修正する方法も学習します。

Python の AttributeError: NoneType Object Has No Attribute Append エラーを修正

まず、product_list というリストを作成し、このリスト内にいくつかのアイテムを追加してから、もう 1つアイテムを追加します。 アイテムをチェックすると、正常に動作しますが、Noneproduct_list に割り当ててから、このリスト内にアイテムを追加しようとすると、NoneType エラーがスローされます。

>>> product_list=['x1','x2']
>>> product_list.append('x3')
>>> product_list
['x1', 'x2', 'x3']
>>> product_list=None
>>> product_list.append('x4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'append'

これは、product_listNoneType であるため、このオブジェクトにアクセスしてアイテムを追加することができず、次のコマンドを使用してこのオブジェクト タイプを確認できます。

>>> type(product_list)
<class 'NoneType'>

このエラーが発生する理由は多数あります。 そのうちの 1つは、リスト内にアイテムを追加して、新しいアイテムを追加するリスト変数に格納しようとする場合です。

そのため、次に新しいアイテムを追加しようとすると、Nonetype エラーになるエラーがスローされます。

>>> product_list=product_list.append('x3')
>>> product_list.append('x4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'append'

属性は、追加するだけでなく、別のオブジェクトにアクセスすることによってもこのエラーを取得できます。 このエラーが発生した場合 (‘NoneType’ オブジェクトに属性 ‘xyz’ がありません)、xyz 属性がオブジェクトに存在しません。

dir() を使用して、アクセスしようとしているオブジェクトが存在するかどうかを確認できます。 append() 属性は、このリスト内には存在しません。

>>> dir(product_list)
['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

何らかの理由で、Python では AttributeError が発生します。 公式ドキュメントを再確認して、実行しようとしているものが存在することを確認できます。 Python スクリプトを作成する場合、Python の規則に反する場合があります。 そのため、この種のエラーが発生します。

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

関連記事 - Python Error