如何在初始化后使类的公共属性只读?

用户名

例如:

class Example:
    def __init__(self, value):
        self.value = value

我要这样做,以便人们self.value在初始化后无法更改它。因此,如果有人尝试将引发异常:

>>> c = Example(1)
>>> c.value = 2

我希望它引发错误或只是使其不可能。

瓦伦丁·洛伦兹(Valentin Lorentz)

您可以使用属性

class Example(object):
    def __init__(self, value):
        self._value = value

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

请注意,带有的值仍可写为example_object._value,但是在属性名称前加下划线是一种惯例,用于告知其他开发人员此属性不是类public API的一部分,因此不应使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以在C#中使用其他类型来初始化类的公共属性吗?

来自分类Dev

依赖注入的公共属性或自定义初始化程序?

来自分类Dev

使用@PropertySource 访问@Lazy 初始化的@Bean 的公共属性

来自分类Dev

如何在模型的类行为公共属性中处理数据?(Yii2)

来自分类Dev

如何使 TableEntity 序列化非公共属性?

来自分类Dev

如何在swift4中创建公共属性

来自分类Dev

Angular4:如何在动态添加属性后重新初始化表单控件

来自分类Dev

如何在Swift类中声明但不初始化属性

来自分类Dev

如何在C#6中的类上初始化属性

来自分类Dev

如何在不使用python初始化的情况下获取类对象的属性类型

来自分类Dev

如何在类中初始化属性的方式上使用条件?

来自分类Dev

初始化后如何自动调用特定的类方法?

来自分类Dev

UWP类公共属性不可访问

来自分类Dev

AS3 类公共属性

来自分类Dev

如何访问在超类初始化期间定义的属性

来自分类Dev

TinyMCE:如何在事件初始化后绑定事件

来自分类Dev

如何在VBA中初始化对象的属性的帮助下初始化对象

来自分类Dev

如何在Ruby中初始化类数组

来自分类Dev

如何在类初始化中挽救输入

来自分类Dev

如何在类定义中初始化std :: array?

来自分类Dev

如何在片段类中初始化Intent

来自分类Dev

如何在接口类中初始化TypeFace

来自分类Dev

如何在C ++中重新初始化基类

来自分类Dev

如何在Java实现中初始化元组类

来自分类Dev

如何在不同的类中初始化对象?

来自分类Dev

如何在Android中初始化类的字段?

来自分类Dev

如何在Python中重新使用初始化的类?

来自分类Dev

如何在Python中初始化继承的类

来自分类Dev

如何在C#中初始化嵌套类

Related 相关文章

热门标签

归档