【发布时间】:2013-03-28 03:10:07
【问题描述】:
我在函数、方法之间的交互方面遇到了一些问题,并且不确定如何使用内置函数__str__。
首先,我有一个名为 vara 的类,它看起来像:
class vara(object):
def __init__(self, kod, namn, pris, butikantal):
self.kod = kod
self.namn = namn
self.pris = pris
self.antal = butikantal
我有一个为 vara klass 创建对象列表的函数,如下所示:
def mina_varor():
varor_fran_fil = open("varor.txt", "r")
varulista = []
for rad in varor_fran_fil:
varje_vara1 = rad
varje_vara2 = varje_vara1.split("/")
varorna = vara(varje_vara2[0], varje_vara2[1], varje_vara2[2], varje_vara2[3])
varulista.append(varorna)
return(varulista)
现在我希望能够通过简单地键入对象的“kod”来访问此列表中的单个对象。但我在我的列表中找不到任何“kod”。看起来很奇怪,所以我尝试打印列表,结果如下:
[<__main__.vara object at 0x00000000031503C8>, <__main__.vara object at 0x00000000031507F0>, <__main__.vara object at 0x0000000003150710>, <__main__.vara object at 0x00000000031502B0>, <__main__.vara object at 0x00000000031505F8>, <__main__.vara object at 0x00000000031504E0>]
我查了一下,似乎 python 无法决定如何解释我的列表。我想我需要一个__str__ 方法来做到这一点,但是如果我想让我的__str__ 方法看起来像这样的话:
Name: Hat
Price: 150
Quantity: 100
Code: 223
?
【问题讨论】:
-
你想要
__repr__魔法方法。更多信息:stackoverflow.com/a/1984177/42346 -
这很好地描述了
__repr__和__str__之间的区别:stackoverflow.com/a/1436756/42346
标签: python string list class function