来自命令式编程背景,令人惊讶的是赋值运算符“=”使两个变量名指向内存中的同一位置,而不是将内存中的值从一个唯一对象复制到另一个对象。这种模式既出现在本地数据类型(例如列表)中,也出现在使用“class”关键字定义的类中。但是,我确实注意到此规则的一个例外:
a = 2
if id(a) == id(2):
print "The id function returns the object's address in memory."
a = 3
if id(a) != id(2):
print "The hardcoded integer '2' does not get its address in memory re-assigned to that of 3"
这两个条件都满足的话。他们必须这样做,否则自然数的构造就会失败。有什么方法可以在我定义的类中利用这种常量性?我希望某些类不像“ln -s”而更像“cp”。