python: новичок не понимает результата: добавление списка с классом - PullRequest
0 голосов
/ 29 февраля 2020

Я новичок в python и не понимаю следующее: я определяю класс и список. Когда я хочу напечатать список после добавления его, я не получаю строки, хотя у меня есть метод, который должен вернуть мне строку, верно? Я не вижу, что здесь не так ..: / Я ожидаю, что результат будет [14,12] ... Если кто-то знает, что я сделал неправильно, пожалуйста, скажите мне: /

class av:

    def __init__(self, num):
        self.num = num
    def __str__(self,num):
        self.num = num
        return str(self.num)

lst = []

lst.append(av(14))

lst.append(av(12))

print(lst)

Результат:

[<__main__.av object at 0x102503dd0>, <__main__.av object at 0x102505d90>]

1 Ответ

5 голосов
/ 29 февраля 2020

__str__ используется только тогда, когда вы print объекты, вы можете использовать __repr__, чтобы получить удобное «представление» на консоли ( подробнее ):

>>> class av:
...     def __init__(self, num):
...         self.num = num
...     def __str__(self):
...         return str(self.num)
...     def __repr__(self):
...         return 'av(%d)' % self.num
... 
>>> av(12)
av(12)
>>> print(av(12))
12
>>> [av(12), av(12)]
[av(12), av(12)]
>>> print([av(12), av(12)])
[av(12), av(12)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...