cod中python3.4中的对象错误

2024-06-28 20:03:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我经常会遇到这样的错误:

<__main__.product object at 0x0231A7B0>

根据代码:

    def prnt(self): 
        print("\n**********************************************************")
        print(self.prntlist()) 
        print("Grand total\t\t\t\t$", self.setprice())
        print("**********************************************************\n")

    def prntlist(self):
        x = ''
        for i in self.cartlist:
            x = i, "/n"
        return x

它不执行函数prntlist,而是显示错误

完整代码:

class product(object):
    name = ''
    price = 0

    def __init__(self, name, price):
        self.name = name
        self.price = price

    def prnt(self):
        print("\n**********************************************************")
        print("Item\t\t\t   Price")
        print(self.name,"............ $", self.price)
        print("\n**********************************************************")

    def prntline(self):
        x = self.name + ".........." + self.price
        return x

class cart(object):
    totalprice = 0
    cartlist = []

    def __init__(self):
        self.totalprice = totalprice
        self.cartlist = []

    def setprice(self):
        totprice = self.totalprice
        for i in self.cartlist:
            self.totalprice += i.price
        return totprice

    def prnt(self): 
        print("\n**********************************************************")
        print(self.prntlist())
        print("Grand total\t\t\t\t$", self.setprice())
        print("**********************************************************\n")

    def prntlinecart(self):
        print("You have purchased: ", self.prntlist())

    def prntlist(self):
        x = ''
        for i in self.cartlist:
            x = i, "/n"
        return x

    def additem(self, item):
        self.cartlist.append(item)
        print("Ah, fresh out. But we can have it shipped to your house next week")

Tags: nameinselfforreturnobjectdef错误
1条回答
网友
1楼 · 发布于 2024-06-28 20:03:26

好吧,我让你的例子为我工作,只是为了看看发生了什么:

class product(object):
    name = ''
    price = 0

    def __init__(self, name, price):
        self.name = name
        self.price = price

    def prnt(self):
        print("\n**********************************************************")
        print("Item\t\t\t   Price")
        print(self.name,"............ $", self.price)
        print("\n**********************************************************")

    def prntline(self):
        x = self.name + ".........." + self.price
        return x

class cart(object):
    totalprice = 0
    cartlist = []

    def __init__(self):
        self.totalprice = 0
        self.cartlist = []

    def setprice(self):
        totprice = self.totalprice
        for i in self.cartlist:
            self.totalprice += i.price
        return totprice

    def prnt(self): 
        print("\n**********************************************************")
        print(self.prntlist())
        print("Grand total\t\t\t\t$", self.setprice())
        print("**********************************************************\n")

    def prntlinecart(self):
        print("You have purchased: ", self.prntlist())

    def prntlist(self):
        x = ''
        print('fff')
        for i in self.cartlist:
            x = i, "/n"

        return x

    def additem(self, item):
        self.cartlist.append(item)
        print("Ah, fresh out. But we can have it shipped to your house next week")


mycart =       cart()  

RL = product("Red Leicester", 13.99)
RL.prnt()

mycart.additem(RL) 
mycart.prnt()

输出为:

**********************************************************
Item               Price
Red Leicester ............ $ 13.99

**********************************************************
Ah, fresh out. But we can have it shipped to your house next week

**********************************************************
fff
(<__main__.product object at 0x7ffbe52609e8>, '/n')
Grand total             $ 0
**********************************************************

你好像在问这个:<__main__.product object at 0x7ffbe52609e8>。正如我在第一条评论中所写的,这是因为在使用下面的x = i, "/n"行时,您正在生成tuple,而不是字符串

相关问题 更多 >