在类内的列表中获取对象的名称字段

时间:2019-03-20 21:38:31

标签: python python-3.x

我无法在类内的列表内打印自定义对象的“名称”字段。

从主我创建对象:

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>

1 个答案:

答案 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}"