0

下面的代码来自这个repo。它随附在 Python 3 编程:Python 语言的完整介绍(开发人员库)一书中。

这部分代码展示了使用装饰器valid_number来强制minimum和的maximum值。pricequantityStockItem

@valid_number('price', minimum=0, maximum=1e6)
@valid_number('quantity', minimum=1, maximum=1000)
class StockItem:

    def __init__(self, name, category, price, quantity):
        self.name = name
        self.category = category
        self.price = price
        self.quantity = quantity

就我而言,我有一个具有两个具有相同约束的属性的类,所以装饰器看起来像:

@valid_number('price', minimum=0, maximum=1e6)
@valid_number('quantity', minimum=0, maximum=1e6)
class StockItem:
    ...

我希望能够写出类似...

@valid_number(['price','quantity'], minimum=0, maximum=1e6)

将约束应用于这两个属性。我仍在研究装饰器和描述符的所有细微差别,所以我不知道这是否可能。描述符和装饰器的完整实现在repo中。

4

0 回答 0