python:初学者不明白结果:附加一个带有类的列表

blu*_*ibi 1 python

我是 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)
Run Code Online (Sandbox Code Playgroud)

结果:

[<__main__.av object at 0x102503dd0>, <__main__.av object at 0x102505d90>]
Run Code Online (Sandbox Code Playgroud)

Bla*_*ear 6

__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)]
Run Code Online (Sandbox Code Playgroud)