Python 使用类访问信息

Python 使用类访问信息,python,class,python-3.x,Python,Class,Python 3.x,我正在编写一个函数,它以代码的形式接受输入并返回一个字符串 class Item(object): def __init__(self, code, name, stock, price): self.code = code self.name = name self.stock = stock self.price = price beer = Item(124, "beer", 200, 12.90) print(b

我正在编写一个函数,它以代码的形式接受输入并返回一个字符串

class Item(object):
    def __init__(self, code, name, stock, price):
        self.code = code
        self.name = name
        self.stock = stock
        self.price = price

beer = Item(124, "beer", 200, 12.90)

print(beer.code)

有没有办法从代码124中得到啤酒的名字。就像你能用字典一样?dict={124:beer}

假设您首先创建了一个项目列表,比如

items = []
items.append(Item(124, "beer", 200, 12.90)
items.append(Item(125, "diapers", 100, 5.90)
然后,您可以使用列表理解来查找具有给定代码的项目,例如

beer = [item for item in items if item.code==124][0]
这假设您可以保证只有一项代码为124。您甚至可以将其封装在函数中:

def find_item(code):
   return [item for item in items if item.code==124][0]

您可以创建库存类并执行以下操作:

class Item(object):
    def __init__(self, code, name, stock, price):
        self.code = code
        self.name = name
        self.stock = stock
        self.price = price

    def __repr__(self):
        return '{}: {} - {} - {}'.format(self.code, self.name, self.stock, self.price)


class Inventory(object):
    _inventory = {}

    def find(self, code):
        return self._inventory.get(code)

    def add_item(self, code, name, stock, price):
        if code in self._inventory:
            raise KeyError('item with this code already present')
        self._inventory[code] = Item(code, name, stock, price)


inventory = Inventory()
inventory.add_item(124, "beer", 200, 12.90)
inventory.add_item(125, "another beer", 400, 8.10)

search = inventory.find(124)
print search
print search.name
输出:

124: beer - 200 - 12.9
beer

你的意思是啤酒。名字?对,我想通过Beel.Access访问Beel.Name。如果SeSEI强烈建议你考虑下面的基本教程,这是微不足道的东西。你可以把这个实例放在字典里,用代码输入。我不明白你的问题是什么?也许{beer.code:beer.name}