零售物品类别分配

时间:2014-06-26 18:29:38

标签: python

此程序应该获取3项信息,存储信息然后显示信息

  

第1项

     

第2项

     

第3项

但是我收到了这个错误:第47行,在主list_display(库存)中 NameError:未定义全局名称“list_display”

我是新手,我确信我已经看了一些东西,但我无法理解。任何帮助将不胜感激。

 # This RetailItem class holds data about products.
class RetailItem:

    # __int__ method initializes the attributes.
    def __init__(self, description, units, price):
        self.__item_description = description
        self.__units_in_inventory = units
        self.__price = price

    # The set_item_description method gets the item type.
    def set_item_description(self, description):
        self.__item_description = description

    # The set_units_in_inventory method gets number of items available.
    def set_units_in_inventory(self, units):
        self.__units_in_inventory = units

    # The set_price method gets the cost of item.
    def set_price(self, price):
        self.__price = price

    # The get_item_description method returns the item type.
    def get_item_description(self):
        return self.__item_description

    # The get_units_in_inventory returns the number of items available.
    def get_units_in_inventory(self):
        return self.__units_in_inventory

    # The get_price method returns the cost of item.
    def get_price(self):
        return self.__price


# This program will test the RetailItem class and return information
# using the mutator method.

import sys

# This defines the main function.
def main():
    # Get a list of RetailItem objects.
    inventory = make_list()

    # Display the data in the list.
    print('Here is the data you entered:')
    list_display(inventory)

    # The make_list will get data for three items. It will
    #return a list of available items.

def make_list():
    # Create an empty list.
    item_list = []

    # Add three item to the list.
    print('Enter data for three items.')
    for count in range(1, 4):
        # Get item data.
        print('Item number ' + str(count) + ':')
        item = input('Enter description of item: ')
        units = float(input('Enter number of units in inventory: '))
        price = float(input('Enter price per item: '))
        print()

        # Creat new RetailItem and assign items variable.
        items = RetailItem(item, units, price)
        # Add items to list.
        item_list.append(items)

        return item_list

    #Display the items information.
    def display_list(item_list):
        for item in item_list:
            print(item.get_item_description())
            print(item.get_units_in_inventory())
            print(item.get_price())
            print()

# Call the main function.
main()

1 个答案:

答案 0 :(得分:-1)

问题在于您调用了错误的函数list_display(inventory),并且您在display_list(item_list)内定义了make_list()
我已将display_list(item_list)移出make_list()并将list_display(inventory)更改为display_list(inventory)

 # This RetailItem class holds data about products.
class RetailItem:

    # __int__ method initializes the attributes.
    def __init__(self, description, units, price):
        self.__item_description = description
        self.__units_in_inventory = units
        self.__price = price

    # The set_item_description method gets the item type.
    def set_item_description(self, description):
        self.__item_description = description

    # The set_units_in_inventory method gets number of items available.
    def set_units_in_inventory(self, units):
        self.__units_in_inventory = units

    # The set_price method gets the cost of item.
    def set_price(self, price):
        self.__price = price

    # The get_item_description method returns the item type.
    def get_item_description(self):
        return self.__item_description

    # The get_units_in_inventory returns the number of items available.
    def get_units_in_inventory(self):
        return self.__units_in_inventory

    # The get_price method returns the cost of item.
    def get_price(self):
        return self.__price


# This program will test the RetailItem class and return information
# using the mutator method.

import sys

# This defines the main function.
def main():
    # Get a list of RetailItem objects.
    inventory = make_list()

    # Display the data in the list.
    print('Here is the data you entered:')
    display_list(inventory)

    # The make_list will get data for three items. It will
    #return a list of available items.

def make_list():
    # Create an empty list.
    item_list = []

    # Add three item to the list.
    print('Enter data for three items.')
    for count in range(1, 4):
        # Get item data.
        print('Item number ' + str(count) + ':')
        item = input('Enter description of item: ')
        units = float(input('Enter number of units in inventory: '))
        price = float(input('Enter price per item: '))
        print()

        # Creat new RetailItem and assign items variable.
        items = RetailItem(item, units, price)
        # Add items to list.
        item_list.append(items)

        return item_list

#Display the items information.
def display_list(item_list):
    for item in item_list:
        print(item.get_item_description())
        print(item.get_units_in_inventory())
        print(item.get_price())
        print()

# Call the main function.
main()