Что произойдет, если вы не определяете свои собственные методы __cmp__
и __str__
?Python: __cmp__ и __str__?
ответ
Если нет __cmp __(), __eq __() или операции __ne __() не определен, класс экземпляры сравниваются по идентичности объекта («адрес»).
Для получения более подробной информации обратитесь к object.__cmp__(self, other) in Python. И вы можете получить дополнительные ссылки Special (magic) methods in Python.
Не определено __str__
, вы получите значение по умолчанию с адресом памяти, например. <__main__.A object at 0x165aa90>
.
Если не определена операция __cmp__()
, экземпляры классов сравниваются по идентификатору объекта, то есть адресу памяти (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)
Спасибо, высоко ценим! – alicew
- 1. Python __str__ и списки
- 2. Python: __cmp__ и членство в списке тестирования
- 3. Метод __str__ в Python
- 4. Python __str__: Magic Console
- 5. python print vs __str__?
- 6. класс Python __str__
- 7. __str__ не работает python
- 8. python, __str__ приватная переменная
- 9. Вызов __str__ в python
- 10. Сравнение объектов Python без определения __cmp__ для класса
- 11. Юникод и переопределение «__str__»
- 12. Правильное использование Python __str__ и __repr__
- 13. Метод __cmp__ - это не работает в Python 2.x?
- 14. Python unicode character в __str__
- 15. python __str__ в унаследованном классе
- 16. Как отформатировать вывод python __str__
- 17. Печать Python __str__ с объекта
- 18. Какова цель __str__ и __repr__?
- 19. Специальный метод __cmp__ не работает
- 20. PEP и многострочный `__str__` return
- 21. пишите объект python __str__ в файл
- 22. Переопределить встроенный метод __str__ в python
- 23. Python: как рекурсивно применять __str__ в печати
- 24. Python Unordered Listwith nodes: __str__ method
- 25. Python: Как настроить функцию __str__ в PriorityQueue
- 26. Разница между __str__ и __repr__?
- 27. Python: почему __str__ не называют рекурсивным?
- 28. Python: Вернуться к основанию __str__ поведение
- 29. Python наследования: Конкатенация с супер __str__
- 30. вызов __str__ внутри класса? python 3.X
Спасибо большое! :) – alicew