PYTHON:更改整数变量的值而不重新创建变量

时间:2015-05-22 20:18:16

标签: python

我想知道是否有一种方法可以编辑整数变量的值,而不是创建一个新的替换前一个变量。代码看起来应该是这样的:

>>> myInt = 1

>>> print myInt

1

>>> myInt.setattr (2)

>>> print myInt

2

4 个答案:

答案 0 :(得分:2)

myInt计为一个变量。实际上:

myInt = 2

更改变量的值,但不更改变量本身。

来自wikipedia

  

在计算机编程中,变量或标量是与关联的符号名称(标识符)配对的存储位置,其包含一些已知或未知的数量或称为值的信息。

因此,分配是更改变量值所需的操作。

答案 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个对象和三个标签abc。您无法更改9,也无法更改a。您可以更改a悬挂的内容:

a = 6