类中的Python分组属性

2024-09-30 10:26:46 发布

您现在位置: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()

是否可以在类中创建一个组,以便我可以识别购物车中属于特定类别的项目数?例如,如果我想把所有的属性都称为饮料(牛奶、水),或者所有非食物的东西(牙刷、肥皂),或者美味的东西(奶酪、培根、薯条),我该怎么做呢?你知道吗


Tags: selfobjectinitdef购物鸡蛋class牛奶
1条回答
网友
1楼 · 发布于 2024-09-30 10:26:46

你不应该只上一堂课。 我将创建两个类。一个是购物车,另一个是购物车。例如:

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)

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

相关问题 更多 >

    热门问题