首页 > 解决方案 > Python 类属性装饰器

问题描述

不确定正确的措辞,但基本上我想问的是在python中是否有可能做这样的事情:

class Customer:
    self.name = 'Freddy'
    @reportMarketing
    self.surname = 'Krueger'
    self.eyes = 'Blue'
    @reportMarketing
    self.address = 'Elm Street'
    @reportAccounting
    self.tax_id = '8ab9a66cf'
    ...
    

where @reportMarketing and @reportAccountingwill be decorators (of sorts)。这个想法是,一个像上面这样的实例然后可以被传递给一些“报告类”——基于实例的属性是用@reportMarketing还是装饰@reportAccounting,然后将其考虑为特定的“报告”。例如,假设您有带有上述实例的客户数据库,并且您希望将带有修饰的数据/属性reportMarketing包含在发送给您的营销部门的报告中,而将带有修饰的数据/属性reportAccounting包含在报告中去你的会计部门。

我想从概念上讲,我的问题是我什至可以拥有属性装饰器吗?我知道它们“通常”(总是?)用于功能。

此外,为了提供更多背景知识,我处理的类有很多属性(每个),所以手动遍历所有这些非常容易出错,所以我想通过简单地装饰我正在处理的几个来处理它之后,是未来最干净和最可扩展的。

标签: pythonpython-decorators

解决方案


推荐阅读