@Observed和其他类装饰器装饰同一个class是否存在问题
是的,将@Observed和其他类装饰器装饰在同一个类上可能会导致问题。
装饰器在Python中是一种设计模式,它们可以用于修改或增强类或函数的某些行为。然而,不同的装饰器可能会以不同的方式修改类或函数的行为,因此将它们混合使用可能会导致不可预测的结果。
以@Observed为例,它通常用于观察类的属性变化并触发相应的行为。如果将@Observed与其他装饰器(如@property、@<attribute_name>.setter等)混合使用,可能会导致属性访问和修改时的行为混乱。
因此,建议在将装饰器应用于类时仔细考虑它们的目的和行为,并避免将它们混合使用,以免出现不可预见的问题。如果必须混合使用装饰器,请确保您了解它们的工作原理,并在代码中仔细测试以确保行为的正确性。
1 回答433 阅读
1 回答354 阅读✓ 已解决
245 阅读
182 阅读
166 阅读
@Observed和其他装饰器连用是否会引入问题,取决于其他装饰器是否需要原class的prototype。当需要时则有问题,不需要时则无问题。例如:@Observed和和一个三方装饰器@Table连用,@Observed会改变class的prototype,三方装饰器@Table是将class的prototype作为key,构建了一个map。