首页 > 解决方案 > 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)

结果:

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

标签: python

解决方案


__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)]

推荐阅读