【问题标题】:Pythonic integer multiplication and additionPythonic 整数乘法和加法
【发布时间】:2018-02-21 10:31:09
【问题描述】:

我在何时应该使用 *= 或明确使用我的代码时发现了问题。我正在尝试在 Python 中进行简单的整数乘法和加法。所以要取一个数,乘以 3 再加 1。有没有具体的情况应该使用:

number *= 3
number += 1

或者

number = (number * 3) + 1

这两者有区别,还是个人喜好问题?

【问题讨论】:

  • 你觉得什么更清楚?
  • 假设number 是整数或浮点数,除了外观没有区别。

标签: python python-3.x int multiplication


【解决方案1】:

对于像整数这样的简单值,它通常不会产生任何影响,而是一种风格问题。对于其他对象,它可能会有所不同,因为+ 将调用__add__ 方法,而+= 将调用__iadd__ 方法(如果存在),它会更新对象本身。想到的简单例子(这里演示__ior__):

foo = set('foo')
bar = foo

bar = bar | set('bar')
# vs
bar |= set('bar')

在这种情况下||= 的区别在于后者也修改了foo,而| 没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 2012-03-15
    • 1970-01-01
    • 2018-10-10
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多