python 3.6, как __str__ влияет на print () - PullRequest
0 голосов
/ 06 января 2019

Я определил класс foo и функцию foo.__str__(). Если x является экземпляром foo, x.__str__() возвращает строковое представление x. Я проверил это на примерах, и это, кажется, работает так, как я хочу.

У меня вопрос, как мне теперь определить foo.print(). Я должен использовать __str__ или, к сожалению, повторить код __str__?

1 Ответ

0 голосов
/ 06 января 2019

Нет, print просто звонит __str__, так что вам больше ничего не нужно делать. Возможно, вам также понадобится определить __repr__, который возвращает представление объекта

код

class A:
    def __str__(self):
        return 'in __str__'

    def __repr__(self):
        return 'in __repr__'

a = A()

print(a) # __str__
print([a]) # __repr__

выход

enter image description here

Посмотрите на этот пост о __str__ против __repr__

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...