7

出于随机的键盘攻击,我最终注意到被SciPy调用的变量中有一个变量i,它被分配给了字符串'6'。(在其他机器上可能会有所不同?)

我尝试使用内置的帮助函数,但没有分配任何内容,scipy.i因为它只指一个字符串。

我还搜索了文档和谷歌,但没有任何结果。

它可能与版本控制或类似的东西有关吗?顺便说一句,我在 Windows 7 上使用 Enthought Python(均为 64 位)。

这远不是一个关键问题,我只是对此感到好奇!

4

1 回答 1

10

哦,这很可爱。从 scipy __init__.py

# Emit a warning if numpy is too old
majver, minver = [float(i) for i in _num.version.version.split('.')[:2]]

在 Python 2 中,列表推导将它们的循环变量“泄漏”到封闭范围内。因此:

>>> import numpy as _num
>>> _num.version.version
'1.6.2'
>>> _num.version.version.split('.')[:2]
['1', '6']
>>> majver, minver = [float(i) for i in _num.version.version.split('.')[:2]]
>>> i
'6'
于 2013-04-08T19:55:45.787 回答