【发布时间】:2011-03-21 23:08:59
【问题描述】:
有没有办法在 python 的函数调用中进行变量赋值?类似的东西
curr= []
curr.append(num = num/2)
【问题讨论】:
标签: python function variable-assignment
有没有办法在 python 的函数调用中进行变量赋值?类似的东西
curr= []
curr.append(num = num/2)
【问题讨论】:
标签: python function variable-assignment
不。分配是statement。它不是 expression,因为它在 C 派生语言中。
【讨论】:
我很确定我记得创建 Python 的原因之一是为了避免这些可憎的事情,而是更喜欢可读性而不是所谓的聪明 :-)
请问,以下有什么问题?
curr= []
num = num/2
curr.append(num)
【讨论】:
cur.append(num=num/2) 的可读性不如[x for x in range(1000,9999) if not [t for t in range(2,x) if not x%t]] 之类的东西
即使可以,副作用表达式也是使代码不可读的好方法,但不是... 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))
【讨论】:
;),然后注意与paxdiablo 答案第二句的词汇平行。然后请注意,Safyan 先生的回答中的“因为我可以,但实际上,不要”,以及它与等效的类似 C 的表达式有何不同。参看。 en.wiktionary.org/wiki/levity