Python变量赋值运算顺序

4 投票
3 回答
613 浏览
提问于 2025-04-16 01:56

在Python中,有没有办法在函数调用的时候进行变量赋值?就像下面这样:

curr= []
curr.append(num = num/2)

3 个回答

0

即使你能这样做,带有副作用的表达式会让你的代码变得难以阅读。不过,Python会把那当作关键字参数来处理。你能做到的最接近的方式是:

class Assigner(object):
   def __init__(self, value):
      self.value = value
   def assign(self, newvalue):
      self.value = newvalue
      return self.value

 # ...
 num = Assigner(2)
 curr = []
 curr.append(num.assign(num.value / 2))
4

我记得Python被创造出来的原因之一就是为了避免这些让人头疼的东西,更注重代码的可读性,而不是所谓的聪明才智 :-)

那么,请问,下面的代码有什么问题呢?

curr= []
num = num/2
curr.append(num)
8

不行。赋值是一个语句。它不是像C语言及其衍生语言那样的表达式

撰写回答