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/