我在Python代码中遇到了一个奇怪的情况,我正试图弄清楚为什么会这样。
init(CGImage, orientation: CGImagePropertyOrientation, physicalWidth: CGFloat)
当我运行上面的代码时,我得到以下NameError:
rounds = 10
probability = 100
items = [1, 2, 3, 4, 5]
from numpy.random import uniform
for r in range(1, rounds):
sample = {item: uniform() < probability for item in items}
这很奇怪,因为我在以下行中使用之前直接导入制服。我使用File "sample.py", line 6, in <module>
sample = {item: uniform() < probability for item in items}
File "sample.py", line 6, in <dictcomp>
sample = {item: uniform() < probability for item in items}
NameError: name 'uniform' is not defined
模块得到了同样的错误。我在我的代码中使用了其他包(包括random
和argparse
),但只有随机数生成给了我错误。我在Windows机器上运行Python 3。当我在pickle
循环中移动import
语句时,我也会收到同样的错误。
for
可能导致此错误的原因是什么?
编辑:我遇到了另一个有趣的现象。以下代码块为rounds = 10
probability = 100
items = [1, 2, 3, 4, 5]
for r in range(1, rounds):
from numpy.random import uniform
sample = {item: uniform() < probability for item in items}
提供了相同的NameError
。
uniform
......和......
from numpy.random import uniform
sample = {item: uniform() for item in [1,2,3]}
但是,以下代码不会为from numpy.random import uniform
sample = [uniform() for item in [1,2,3]]
提供NameError
。
uniform
Python处理字典/列表理解的方式似乎有些东西使得前两个代码块非法,但第三个代码块没问题。