I am trying to figure out whether the following are immutable in Sage (which is built on Python so I believe if it is immutable in python, I believe in most cases it will be immutable in Sage)
下面是物体e,f,g,i
class e: pass
f = e()
g = pi # (g's "type" in Sage is symbolic expression. It's supposed to be 3.1415....etc)
i = lambda x: x*x
?不能修改所有类吗?)。
Since numbers are immutable in Python, g should be immutable as well since it is a number despite being irrational
最后,我是一个函数,这意味着它应该是可变的?
我不太确定我是否理解不变性的概念。函数不可变意味着什么?一个类是不可变的?
最佳答案
e
是可变的。例如,可以在类中添加新方法:e.foo = lambda self,x: x
。f
是可变的。。f.x = 99
是不可变的。。
。。(你也可以对它做更合理的事情。在g
之后,您将从i
获得更有用的结果)
如果你能对一个对象做些什么来改变它未来可能的行为,那么这个对象是可变的。。(但不是元组。一旦一个元组被制造出来,它就如同它存在时一样保持不变。
关于python - 其中哪些在Python中是不变的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5656998/