我无法在类内的列表内打印自定义对象的“名称”字段。
从主我创建对象:
SC = Shopping_Cart()
cn = input("Give coupon name:")
cid = random.randint(0, 100)
dis = input("Give discount:")
cp = Coupon(cid, cn, dis)
SC.createCoupon(cp)
SC.__repr__()
我在Shopping_Cart里面:
def __init__(self):
self.cash = 500.0
self.item_list = []
self.coupon_list = []
self.generic_discount = 0
def createCoupon(self, coupon):
self.coupon_list.append(coupon)
def __repr__(self):
for i in self.coupon_list:
print(str(i))
及其打印内容是: << strong>主要。优惠券对象位于0x7faf20683e48>
答案 0 :(得分:1)
您需要返回一个字符串,而不是在__repr__
中打印字符串。
在购物车中,您的代表应该是这样的:
def __repr__(self):
return '\n'.join(self.coupon_list)
而且,我还建议在Coupon
中制作一个__str__
函数来格式化其打印内容,这虽然很小,但取决于您:
def __str__(self):
return f"ID: {self.cid} | Name: {self.cn} | Discount: {self.dis}"