无法使用whileloop(python)创建对象

2024-06-09 23:19:53 发布

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

我试图从另一个类创建一堆Parts对象,但它似乎不起作用。我正确地读取了txt文件,如果你们需要的话:

 partA 22.50 60
 partB 595.00 100
 partC 1.95 1000
 partD 899.95 100
 partE 10.95 100

在“零件库存”类下的#fills parts---------------comment下出现问题。打印报表行不通。你知道吗

class Parts:  
    def __init__(self, partname, price, quantity):
        self.partName = partname
        self.partPrice = price
        self.partQuantity = quantity

    def getpartname(self):
        return self.partName

    def getpartprice(self):
        return self.partPrice

    def getpartquantity(self):
        return self.partQuantity

    def setpartname(self, name):
        self.partName = name

    def setpartprice(self, price):
        self.partPrice = price

    def setpartquantity(self, quantity):
        self.partQuantity = quantity

    def equals(self, part2):
        if self.partName == part2:
            return True


class PartInventory:  # constructer, getter setter, dictionary
    def __init__(self):
        self.partInventoryy={}
        partnames = []
        partprices = []
        partqs = []
        partfile = open("parts.txt", "r", encoding="utf-8")
        #fills dictionary----------------------------------------------------
        for line in partfile:
            substring = line.split(' ')
            partnames.append(substring[0])
            partprices.append(substring[1])
            partqs.append(substring[2].strip("\n"))
        self.partInventoryy=dict(zip(partnames, partqs))
        partPricings = dict(zip(partnames, partprices))
        print(self.partInventoryy)
        #fills parts--------------------------------------------------------
        i=0
        while i<len(partnames):
            partnames[i]= Parts(partnames[i],partprices[i],partqs[i])
            i=i+1
        print(partE.getpartname())
    #methods---------------------------------------------------------------------

Tags: selfreturndefsubstringpricequantitypartspartname
1条回答
网友
1楼 · 发布于 2024-06-09 23:19:53

您的Part对象正在创建中。你知道吗

问题是您试图访问从未创建过的内容PartE。为了进行比较,您创建了一些变量:

  • partnames
  • partprices
  • partqs
  • partfile
  • line
  • i
  • substring

要向自己证明您正在while循环中创建内容,请再添加一行:

    while i<len(partnames):
        partnames[i]= Parts(partnames[i],partprices[i],partqs[i])
        i=i+1
        print(partnames[i])

这将打印您创建的每个Parts。你知道吗

相关问题 更多 >