我正在尝试通过制作商品对象列表来制作收据程序。我通过创建类和函数来实现这一点:
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没有定义,虽然我在我的主函数中使用它,为什么会这样?
答案 0 :(得分:3)
即使第一个函数被调用main
,也无法在一个函数中定义变量并在另一个函数中使用它。您需要明确地将变量传递给第二个函数。