__setattr__ vs类属性来设置属性

时间:2018-08-30 20:51:41

标签: python class methods

请考虑以下两个类定义,在第一个定义中,为了在将值分配给属性之前进行其他检查(例如,跟踪修改后的变量,检查有效性等),我会覆盖{{ 1}}方法,在第二种方法中,我使用属性。

__setattr__

在我看来,它们的行为方式相同。
两者之间有什么区别吗?应该选择哪个,为什么?

1 个答案:

答案 0 :(得分:2)

__setattr__更通用,因为它将为A().foo = 3运行,无论您提供什么属性foo。属性设置器特定于单个明确定义的属性,不能用于“意外”创建属性。