2016-07-05 8 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

あなたは1つのクラスだけではいけません。 私は2つのクローズを作成します。 1つはカートアイテム、もう1つはショッピングカートです。

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/

関連する問題