python是否具有“临时”或“非常本地”变量功能?我正在寻找一种衬板,并且希望保持可变空间的整洁。

我想做这样的事情:

...a, b, and c populated as lists earlier in code...
using ix=getindex(): print(a[ix],b[ix],c[ix])
...now ix is no longer defined...

变量ix在一行的外面是不确定的。

也许这个伪代码更加清晰:
...a and b are populated lists earlier in code...
{ix=getindex(); answer = f(a[ix]) + g(b[ix])}

其中ix在括号之外不存在。

最佳答案

理解和生成器表达式具有自己的范围,因此您可以将其放在其中之一中:

>>> def getindex():
...     return 1
...
>>> a,b,c = range(2), range(3,5), 'abc'
>>> next(print(a[x], b[x], c[x]) for x in [getindex()])
1 4 b
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined

但是您真的不必担心这种事情。那是Python的卖点之一。

对于使用Python 2的用户:
>>> print next(' '.join(map(str, [a[x], b[x], c[x]])) for x in [getindex()])
1 4 b

考虑使用Python 3,因此您不必将print作为语句来处理。

关于python - 如何在python中定义一个临时变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39386837/

10-12 22:05