当前位置: 首页 > 面试题库 >

递增int对象

蔚学真
2023-03-14
问题内容

python中是否有办法在适当的位置增加int对象,int似乎未实现,__iadd__所以+ = 1实际上返回了一个新对象

>>> n=1
>>> id(n)
9788024
>>> n+=1
>>> id(n)
9788012

我想要的是n保持指向同一对象。

目的:我有一个从int派生的类,并且我想为该类实现C型“ ++ n”运算符

结论:好的,因为int是不可变的,看来我将不得不编写自己的类,就像这样

class Int(object):
    def __init__(self, value):
        self._decr = False
        self.value = value

    def __neg__(self):
        if self._decr:
            self.value -= 1
        self._decr = not self._decr
        return self

    def __str__(self):
        return str(self.value)

    def __cmp__(self, n):
        return cmp(self.value, n)

    def __nonzero__(self):
        return self.value

n = Int(10)
while --n:
    print n

问题答案:

int是不可变的,因此如果您想使用“可变的int”,则必须使用所有int的方法来构建自己的类



 类似资料:
  • 我编写了两个版本的Java代码,将char变量增加1: 版本1: 版本2: 令我惊讶的是,第二个版本编译并运行成功,但第一个版本显示了一个错误,即不兼容的类型:从int到char的有损转换。为什么它们不同?

  • 问题内容: 我试图检查不同的输入并在java中创建无限循环,我发现一旦超过最大限制,它就会变成负数。我只是在无限循环中增加int … 码: 最后输出的价值是, 现在,为什么会变成负数? 问题答案: 为什么会变成负面? 因为这是在计算溢出时指定在Java中发生的事情。 JLS 15.18.2 “如果整数加法溢出,则结果是数学和的低阶位,以某种足够大的二进制补码格式表示。如果发生溢出,则结果的符号与整

  • Android - 显示Int上点击按钮递增 ,递减 [错误:无法解析方法'显示(int)' ] 我在Android Studio上收到错误,因为我认为是因为我正在插入多个“显示器”。有人可以建议吗 请查看以下错误:

  • 问题内容: 对CountDownTimer有疑问。我必须制作一个应用程序,允许用户每次单击按钮都将时间增加+1。然后,在停止单击按钮后,它会等待三秒钟,然后开始倒计时。 我在下面粘贴了我的代码。 我的问题是:我似乎无法使数字递增正常工作,但是似乎在停止递增数字(onStop())之后,它直接转到了(onFinish())。而不是转到OnTick()并每秒减少1。我已经尝试了多种方法来解决此问题,但

  • 我的POJO很大。Map Struct中是否有一种方法可以自动增加列表中的变量?

  • 问题内容: 如何在Java中增加Integer的值?我知道我可以使用intValue获取值,也可以使用新的Integer(int i)进行设置。 似乎不起作用。 注意:PlayerID是使用以下内容创建的整数: 问题答案: 对象是不可变的,因此一旦创建它们就无法修改该值。您将需要创建一个新的并替换现有的。