我在函数、方法之间的交互方面遇到了一些问题,并且不确定如何使用内置函数__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
?