Как использовать метод __str__ в Python?
Как и когда использовать .str() - Python Start Here Learn Python Python Tutorials
В этом уроке вы узнаете один из способов преобразования объектов Python в строки с помощью метода .str(). Вы также узнаете, что означает .str() и научитесь использовать его в классе Python:
Окей. В этом простом примере я взял класс Car и добавил в него метод .str(). Dunder-методы - это методы, которые начинаются с двойного подчеркивания ( __ ). Их также называют магическими методами, хотя многим людям это не нравится, потому что они на самом деле не должны быть волшебными. Они просто являются конвенцией в Python. Подчеркивание, или двойное подчеркивание ( __ ), отмечает их как основные вещи в Python. Классы, на самом деле, не должны определять свои собственные dunder-методы, потому что это может конфликтовать с будущими функциями Python.
Когда я печатаю объект Car, я получаю строку “Машина цвета красная” вместо предыдущей строки с памятью. Однако, когда я визуально осматриваю этот объект, я все еще получаю адрес памяти в предыдущем результате.
Если вы хотите принудительно преобразовать объект в строку, вы можете использовать встроенную функцию str(). Она внутренне вызывает метод .str() и возвращает правильный результат. Это также относится к функции print(), которая делает то же самое. Использование str() в комбинации с format-строкой тоже даст вам правильный результат.
Если вы добавите метод .str(), то это поможет вам контролировать, как ваш объект представлен в виде строки. Это Python-способ сделать это, что называется голым граалем. Тем не менее, результат осмотра объекта my_car в консоли остается тем же самым.
Таким образом, существуют разные способы преобразования ваших объектов в строки. Первый изученный нами - это dunder-метод .str(). Второй - dunder-метод .repr(). Давайте поговорим о том, что делает .repr() и чем он отличается от .str().