。そのオブジェクトに属していないメソッドを呼び出すと、 "リストオブジェクトにはその属性がありません"というエラーが表示されることを理解しています。私の質問は、なぜ人々はメソッドを使うのではなく、ここで属性を使うのですか?正確に言えば、方法でなければならないのですよね?皆さん、ありがとうございました。なぜエラーメッセージは "リストオブジェクトにメソッド*()"があるのではなく、リストオブジェクトに属性*()がありませんのようなものですか?
-1
A
答えて
4
は
some_list.foo()
のような操作で使用すると、1つとして考えている2つのステップがあります。
some_list.foo
をし、それを呼び出す:属性を取得し、いくつかの他の言語とは異なり
()
を、これらは完全に独立した手順です。 some_list.foo
属性アクセスを担当するコードは、属性を呼び出す予定があることを認識していません。存在しない属性を取得しようとしていることがわかります。それがその属性です。
0
方法は、属性、具体的には呼び出し可能な属性であるです。属性は、オブジェクトにスコープされたものを含む、より一般的な用語です。たとえば:
0
Pythonには一般的な方法がないため(メソッドは単にクラスに関連付けられた関数です)。典型的な呼び出しは次のようになります。
x.foo (bar)
しかし、これはまさにこれと同じである:
m = x.foo
m (bar)
エラーが最初のステップで起こり、そしてこの時点でfoo
は単なる属性であることは明らかです、属性getterは後で何が行われるか分かりません。次AST(抽象構文木)を生成a.bar()
のPythonを呼び出すとき
class A:
def foo():
return "a"
a = A()
a.bar()
::次のコードを考慮
0
Call(
func=Attribute(
value=Name(id='a', ctx=Load()),
attr='bar',
ctx=Load()
),
# ...
)
Pythonがやるしようとするまず最初に属性を得ている、と呼び出し可能かどうかをチェックします。属性が存在しない場合は、Attribute
が最初に失敗し、関連付けられたエラーA object has no attribute bar
が発生します。あなたが属性を見つけることができない場合
お知らせそれはメソッドまたはない場合はどのようにあなたが言うのです... A object has no attribute bar()
関連する問題
- 1. リストオブジェクトには属性がありません。
- 2. Pythonエラー: "リストオブジェクトに属性がありません" .upper "
- 3. Pythonリストオブジェクトに属性エラーがありません
- 4. PySpark mllibロジスティック回帰エラー "リストオブジェクトに最初に属性がありません"
- 5. Python - リストオブジェクトの "int 'オブジェクトにサブスクリプトがありません"
- 6. リストオブジェクトに自己定義クラスのメソッドのAttributeErrorがあります
- 7. 'ManyToManyDescriptor'オブジェクトには属性 'add'がありません。なぜですか?
- 8. JavaにはC#のような属性がありますか?
- 9. なぜ "AttributeError: 'tuple'オブジェクトに属性 'savefig'がありませんか?
- 10. なぜ、 "AttributeError: 'NoneType'オブジェクトに 'group'属性がありませんか?
- 11. なぜ 'object'クラスにユーザ設定属性がありません
- 12. AttributeErrorを復活させるのはなぜですか: 'int'オブジェクトには属性 'find'がありませんか?
- 13. クラスファイル内でネイティブでも抽象メソッドでもないメソッドのコード属性がありません。javax/persistence/InheritanceType
- 14. なぜC++コンパイラにはわかりにくいエラーメッセージがあるのですか
- 15. なぜtkinterにPython Tkinterに 'Text'という属性がありませんか?
- 16. macOSに `#![windows_subsystem(windows)]`のような属性がありますか?
- 17. 属性エラー: 'module'オブジェクトに属性がありません - ヘルプはもう必要ありません。
- 18. なぜorg.lwjgl.opengl.GL43クラスにはglDrawElementsメソッドがありませんか?
- 19. Silverlightに "OnPaint"メソッドのようなものがありますか?
- 20. なしタイプには属性インデックスがありません
- 21. なぜC++のビットフィールドは移植性がありませんか?
- 22. なぜ、 `` NoneType 'オブジェクトに.kvファイルの属性がありませんか?
- 23. MDLMeshに名前のないデフォルト属性があるのはなぜですか?
- 24. プロパティデコレータに「オブジェクトに属性がありません」と表示されるのはなぜですか?
- 25. 属性エラーメソッドのオブジェクトには属性がありません
- 26. なぜHKSample配列には、HKAnchoredObjectQueryの値が1つでもなく、述語もアンカーもありません。
- 27. なぜjsonliteはデータをリストオブジェクトに解析しますか?
- 28. どこでもPOSTメソッドがあるのはなぜですか?
- 29. errormessageのstringlength属性にはどのようなパラメータがありますか?
- 30. リストオブジェクトが呼び出せない、エラーが見つかりません
を言っていないですか? –
メソッドは_クラスの属性です。それは単なる呼び出し可能な属性です。 – wpercy