如何在__init__中设置只读@property

时间:2018-11-03 17:44:10

标签: python python-3.x properties

我只是想知道如何使用只读属性并在__init__中设置初始值

我想要这样的东西: 只需在构造函数中设置的私有变量(最多可以使用python来保护隐私)。

class A:
    def __init__(self, value: int):
         self.value = value

    @property
    def value(self):
        return self.value

据我所知这是不可能的(无法设置值)?

1 个答案:

答案 0 :(得分:2)

函数是python中的一等公民。您的班级中不能有两个名称完全相同的成员。本质上,您的类已经具有类型为self.value的{​​{1}},您的代码尝试将其设置为给定的<class 'property'>整数,这是禁止的,因此会弹出此错误。

通过以下方式规避它:

value