在Python中使变量不可变

2024-04-24 15:47:56 发布

您现在位置:Python中文网/ 问答频道 /正文

class Foo(float):
   ...

C = Foo(1.23)

给定这样一个class/obj定义,有没有办法使C成为只读的?如果在初始化对象C之后调用C = ...,我希望它引发一个错误。你知道吗


Tags: 对象obj定义foo错误floatclass办法
2条回答

这是不可能的。可以使Foo对象不可变,但不能使引用它的变量不可变。对象不拥有该变量或对其没有任何控制权。你知道吗

没有

无论您将什么赋值给CC本身不是您创建的任何类的实例。C是一个变量。对变量进行操作的操作,如C = something_new,除了减少refcount之外,甚至不查看对象。可以定义对象上操作的行为方式,但不能重新定义变量本身的语义。你知道吗

相关问题 更多 >