Pythonic整数乘法和加法

时间:2018-02-21 10:31:10

标签: python python-3.x int multiplication

我在使用* =或明确使用我的代码时遇到问题。我正在尝试在Python中进行简单的整数乘法和加法。所以要取一个数字,将它乘以3并加1.有具体情况我应该使用:

number *= 3
number += 1

number = (number * 3) + 1

这两者之间是否有区别,或者这是个人偏好的问题?

1 个答案:

答案 0 :(得分:4)

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

foo = set('foo')
bar = foo

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

在这种情况下,||=之间的区别在于后者也会修改foo,而|则不会。{/ p>