我想知道是否有一种方法可以编辑整数变量的值,而不是创建一个新的替换前一个变量。代码看起来应该是这样的:
>>> myInt = 1
>>> print myInt
1
>>> myInt.setattr (2)
>>> print myInt
2
答案 0 :(得分:2)
myInt
计为一个变量。实际上:
myInt = 2
更改变量的值,但不更改变量本身。
在计算机编程中,变量或标量是与关联的符号名称(标识符)配对的存储位置,其包含一些已知或未知的数量或称为值的信息。
因此,分配是更改变量值所需的操作。
答案 1 :(得分:1)
class FakeMutableInt(object):
def __init__(self, val):
self.__val = val
def setval(self, newval):
self.__val = newval
def __add__(self, other):
return self.__val + other
def __sub__(self, other):
return self.__val - other
# etc
当然这一切都毫无意义,但将允许你这样做:
>>> myInt = FakeMutableInt(3)
>>> myInt.setval(5)
不是我确定你为什么要这么做。
答案 2 :(得分:1)
myInt是一个可以重新赋值的变量。当您在python中使用“=”时,您实际上是在告诉Python在内存中找到指向变量“myInt”的插槽并将其设置为“=”之后的任何内容。这就是大多数程序员改变变量值的方法。请记住,赋值不会创建新变量。它只是重新分配该内存位置的值。
此外,Python不同于其他语言,因为您不必显式声明数据类型。而在C / C ++和Java中,如果要创建int类型的新变量,则可以执行以下操作:
int x = 6;
那将声明一个int类型的变量,并将初始化该变量赋值为6。
在Python中,这不是必需的。
答案 3 :(得分:1)
myInt
是一个标签。你不能改变标签,只是它悬挂的标签。您可以将许多标签挂在对象上:
a = 9
b = 9
c = 9
只有一个9
个对象和三个标签a
,b
和c
。您无法更改9
,也无法更改a
。您可以更改a
悬挂的内容:
a = 6