2016-07-05 35 views
0

假設我有一個類「shoppingCart」。我在購物車中添加物品:雞蛋,牛奶,奶酪,麪包,牙刷,培根,洗潔精,薯片和瓶裝水。Python在一個類中分組屬性

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

你不應該這樣做只有一個類。 我會創建兩個clases。一個是購物車,另一個是購物車。例如:

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) 

所以,你會怎麼做:

myCart = shoppingCart() 

milk = cartItem(amount=10) 
milk.is_beverage = True 

coke = cartItem(amount=2) 
milk.is_beverage = True 

myCart.cart_items = [milk, coke] 

chips = CartItem(amount=20) 
chips.is_beverage = False 

myCart.append_cart_item(chips) 

我甚至會作出一個具體的類每車項目類型(I稍後可能會改進該示例)。 我建議您進一步瞭解課程和小類,例如:http://www.jesshamrick.com/2011/05/18/an-introduction-to-classes-and-inheritance-in-python/

相關問題