在类中使用函数

时间:2013-04-04 15:40:17

标签: python list class object methods

我正在尝试通过制作商品对象列表来制作收据程序。我通过创建类和函数来实现这一点:

class ware(object):

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

    def code (self):
        return self.code

def my_wares():
    wares_from_file= open("wares.txt", "r")
    list_of_wares= []
    for line in wares_from file:
        every_ware1= line
        every_ware2= varje_vara1.split("/")
        wares= ware(every_ware2[0],every_ware2[1], every_ware2[2], every_ware2[3])
        list_of_wares.append(varorna)

    list_of_wares.sort()
    return(list_of_wares)

在我创建了对象列表之后,我通过以下方式在main函数中调用我的函数:

def main():
    all_wares = my_wares()

现在我需要在另一个类方法中使用这个ware对象列表,我试着这样做:

class receipt_part(ware):
    def __init__(self, kod, namn, pris, butik_antal):
        ware.__init__(self, code, name, price, quantity)
        self.price_toal= 0
        self.customer_quantity= 0

    def shop_ware(kod):
        wares_quantity= input("how many wares does the customer wants?")
        self.name= all_wares[1]
        self.price= all_wares[2] 
        peice_total+= all_wares[3]*wares_quantity
        customer_quantity+= int(wares_quantity)
        quantity= int(all_wares[4]) - int(wares_quantity)
        __str__()

但它说all_wares没有定义,虽然我在我的主函数中使用它,为什么会这样?

1 个答案:

答案 0 :(得分:3)

即使第一个函数被调用main,也无法在一个函数中定义变量并在另一个函数中使用它。您需要明确地将变量传递给第二个函数。