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

时间:2015-12-05 23:43:01

标签: python class object

我试图从另一个类创建一堆Parts对象,但它似乎并没有起作用。我正确读取txt文件,如果你们需要它就是这个:

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

在零件库存类下的#fills零件---------------------评论下出现问题。印刷声明不起作用。

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---------------------------------------------------------------------

1 个答案:

答案 0 :(得分:1)

正在创建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