Python在类中分组属性

时间:2016-07-05 21:50:12

标签: python

假设我有一个班级“shoppingCart”。我在购物车中添加了各种商品:鸡蛋,牛奶,奶酪,面包,牙刷,培根,洗碗皂,薯片和瓶装水。

class shoppingCart(object):
    def __init__(self):
        self.eggs = 12
        self.milk = 2
        self.cheese = 1
        self.bread = 0
        self.toothbrush = 1
        self.bacon = 10
        self.soap = 1
        self.chips = 2
        self.bottlewater = 24

myCart = shoppingCart()

是否可以在班级中创建一个组,以便我可以识别购物车中属于特定类别的商品数量?例如,如果我想调用饮料(牛奶,水)或所有非食品(牙刷,肥皂)或美味食品(奶酪,培根,薯条)的所有属性 - 怎么可能我这样做了吗?

1 个答案:

答案 0 :(得分:1)

你不应该只用一个班级。 我会创造两个分支。一个是购物车项目,另一个是购物车。例如:

ng-bind-html

然后是购物车:

class cartItem(object):
    def __init__(self, amount=0):
        self.amount = amount
        self._is_beverage = False

    @property
    def is_beverage(self):
        return self._is_beverage

    @is_beverage.setter
    def is_beverage(self, value):
        self._is_beverage = value

所以你要这样做:

class shoppingCart(object):
    def __init__(self):
        self._cart_items = []

    @property
    def cart_items(self):
        return self._cart_items

    @cart_items.setter
    def cart_items(self, value):
        self._cart_items = value

    def append_cart_item(self, new_cart_item):
        self._cart_items = self._cart_items.append(new_cart_item)

我甚至会为每个购物车项目类型创建一个特定的类(我稍后可能会改进该示例)。 我建议您了解有关类和子类的更多信息,例如:http://www.jesshamrick.com/2011/05/18/an-introduction-to-classes-and-inheritance-in-python/