2024-04-24 15:47:56 发布
网友
class Foo(float): ... C = Foo(1.23)
给定这样一个class/obj定义,有没有办法使C成为只读的?如果在初始化对象C之后调用C = ...,我希望它引发一个错误。你知道吗
C = ...
这是不可能的。可以使Foo对象不可变,但不能使引用它的变量不可变。对象不拥有该变量或对其没有任何控制权。你知道吗
Foo
没有
无论您将什么赋值给C,C本身不是您创建的任何类的实例。C是一个变量。对变量进行操作的操作,如C = something_new,除了减少refcount之外,甚至不查看对象。可以定义对象上操作的行为方式,但不能重新定义变量本身的语义。你知道吗
C
C = something_new
这是不可能的。可以使
Foo
对象不可变,但不能使引用它的变量不可变。对象不拥有该变量或对其没有任何控制权。你知道吗没有
无论您将什么赋值给
C
,C
本身不是您创建的任何类的实例。C
是一个变量。对变量进行操作的操作,如C = something_new
,除了减少refcount之外,甚至不查看对象。可以定义对象上操作的行为方式,但不能重新定义变量本身的语义。你知道吗相关问题 更多 >
编程相关推荐