从__init __()设置Python属性

时间:2017-09-14 19:29:57

标签: python python-2.7

我想定义一个类,在设置/修改属性时确保一些约束。此外,我希望能够使用相同的约束在构造上设置属性值。简化示例:

class

我正在从 init ()调用属性设置器,因此该属性是唯一直接访问self._myattr的位置。使用像这样的属性是否有任何问题或警告(如缺少或无效的_myattr创建)?也许当(多个)继承进来时?是否有PEP或其他一些"官方"关于如何从 init ()?

正确初始化属性的声明

我找到的大多数属性示例都没有使用构造函数中的属性setter。在How to set a python property in __init__中,在设置属性之前会显式创建基础属性。有些人认为必须在 init ()中明确初始化每个属性,这就是为什么我的代码示例有点奇怪。

1 个答案:

答案 0 :(得分:0)

没有任何问题。使用适合你的。

要记住的一件事是,使用setter设置属性会运行您已设置的验证。直接在__init__中设置属性不会执行该验证。这会使setter版本更慢,但是因为不允许某些值更安全。