メソッド__cmp__
と__str__
に自分自身を定義しないとどうなりますか?Python:__cmp__と__str__?
4
A
答えて
6
ない__cmpの__()の場合、__eq __()または__ne __()操作が定義され、クラス インスタンスは、オブジェクトアイデンティティ(「アドレス」)によって比較されます。
詳細については、object.__cmp__(self, other) in Pythonを参照してください。さらに参考文献Special (magic) methods in Pythonを得ることができます。
6
__str__
が定義されていない場合、メモリアドレスを持つデフォルトの値が得られます。 <__main__.A object at 0x165aa90>
。
操作が定義されていない場合、クラスインスタンスはオブジェクトID、つまりメモリアドレス(docs)で比較されます。
例:
>>> class A(object):
... pass
...
>>> a = A()
>>> b = A()
>>> str(a)
'<__main__.A object at 0x7fcb1df8acd0>'
>>> hex(id(a))
'0x7fcb1df8acd0'
>>> a < b
False
>>> a > b
True
>>> id(a), id(b)
(140510357925072, 140510357925008)
+0
ありがとう、非常に感謝! – alicew
関連する問題
- 1. のpython 2とPython 3 __cmp__
- 2. 継承クラスのpython __str__
- 3. クラスの__cmp__を定義しないPythonオブジェクトの比較
- 4. __str__と__repr__の違いは?
- 5. __str__とプリティプリント(サブ)辞書
- 6. Django Dictsort by __str__
- 7. Djangoは、私は__str__
- 8. Pythonクラスの__str__関数内の呼び出しメソッド
- 9. Python/Django:TypeError:__str__が非文字列(型UUID)を返しました
- 10. `__str__`はインスタンスメソッドですか?
- 11. タイプは__str__と印刷との違いを直接
- 12. partialを__str__として使用できません
- 13. Djangoで__str__関数を実行していることは何ですか?
- 14. クラスインスタンスで__str__を呼び出すと出力が得られませんか?
- 15. 印刷する方法は私のクラスの__str__ですか?
- 16. python3クラスの__str__の出力文字列のフォーマット
- 17. 各クラスモデルのmodels.pyの__str__関数の再利用方法
- 18. Djangoモデルの `__str__`メソッドにスペースを追加するには?
- 19. 管理者とテンプレートでモデルdef __str__と異なるデータ表現を行う方法
- 20. "__str__が返された文字列以外の型(int型)"のエラー
- 21. Djangoで親の__str__を呼び出すカスタム__str__を作成できません
- 22. なぜ__unicode__は動作しませんが、__str__は機能しますか?
- 23. なぜstrは__str__ができるときに2番目のパラメータを取得できないのですか?
- 24. オブジェクトを表示するDjango管理者 - __unicode__と連携していませんOR __str__
- 25. クラス内のインスタンスの名前が表示されるように、__str__でパーツを修正するにはどうすればよいですか? Python 2X
- 26. __str__関数は文字列を返さず、代わりにインスタンスを返します。
- 27. 出力のために `__repr__`の代わりにオブジェクトの` __str__`を使うようにIPythonに指示します
- 28. adminのエラー:__str__は文字列以外の文字列を返しました(タイプなしタイプ)
- 29. __str__を使用して、異なる数の異なる文字列を返すか?
- 30. 静的メソッドを使用してクラス文字列の表現を変更する__str__を上書きする
どうもありがとう! :) – alicew