在当前的字典结构中,比@Danil Speransky更通用的方法是:
def sold(name, quant):
stock[name + " QUAN"][0] -= quant
我会重构字典,并考虑定义一个类来创建字典中的对象:
class store_item(object):
def __init__(self, price, condition, quantity, info1=None, info2=None):
self.price_usd = price
self.condition = condition
self.info1 = info1
self.info2 = info2
self.quant = quantity
然后,您可以使用对象创建一个字典,并以更好的方式进行访问(甚至可以使用继承来创建不同种类产品的特殊类,例如处理器)。访问示例:
stock['Intel i7-7770T'].quant -= 1
stock['Intel i7-7770T'].price_usd *= 0.95
使用类的优点是,您可以在对象中编写额外的初始化,并创建方法来执行某些操作。例如,折扣可以以保留旧值的不同方式完成:
class store_item(object):
def __init__(self, price, condition, quantity, discount=None, info1=None, info2=None):
self.price_usd = price
self.discount = discount
self.condition = condition
self.info1 = info1
self.info2 = info2
self.quant = quantity
def get_price(self, unit):
if self.discount is None:
return getattr(self, "price_" + unit)
else:
return getattr(self, "price_" + unit) * (1 - self.discount)
stock['Intel i7-7770T QUAN'][0] -= 1
- Ma0