python - 是否可以在 __post_init__() 或更高版本中卡住数据类对象?

标签 python python-dataclasses

<分区>

我想知道是否可以在 post_init() 中或什至在定义对象之后“卡住”数据类对象。

所以代替:

@dataclass(frozen=True)
class ClassName:
    var1: type = value

有类似的东西:

@dataclass
class ClassName:
     var1: type = None
def __post_init__(self):
     self.var1 = value
     FREEZE()

或者甚至是:

a = ClassName()
FREEZE(a)

可能与否,为什么?

最佳答案

不,不是。但是“frozen”可以被简单地颠覆,只需使用:

@dataclass(frozen=True)
class ClassName:
     var1: type = value
def __post_init__(self):
    object.__setattr__(self, 'var1', value)

关于python - 是否可以在 __post_init__() 或更高版本中卡住数据类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68655717/

相关文章:

python - 当我在 Eclipse 中运行一个简单的 django 脚本时出现奇怪的 python 错误,而不是在控制台中发生

Python 3.7 : Utility of Dataclasses and SimpleNameSpace

python - 通过属性使用具有依赖属性的数据类

python-3.7 - Python 嵌套数据类...这有效吗?

python - 使用Python获取html文件上所有<a>标签中href属性的值

python - 类型错误 : 'int' object is not subscriptable

python - 如何从管理面板的字段中提取信息?

python - Python 数据类的子级总是数据类本身吗?

python - 如何删除数据类属性

python - Pandas 弄乱了 DataFrame.from_csv 上的日期列