【发布时间】:2011-03-26 04:16:27
【问题描述】:
我正在用 python 为一个朋友编写一个愚蠢的程序,打印“我们是说'Ni'的骑士!”。然后休眠 3 秒,然后打印“Ni!”使用random 模块的uniform() 方法以随机间隔进行20 次。这是我的代码:
from time import sleep
import random
def knights_of_ni():
generator = random.Random()
print "We are the knights who say 'ni'."
sleep(3)
for i in range(0,20):
print "Ni!"
sleep(generator.uniform(0,2))
我尝试通过输入解释器from silly import knights_of_ni() 和 import silly 来导入此模块,然后分别使用knights_of_ni() 或silly.knights_of_ni() 调用该函数,但我总是得到相同的异常:
NameError: global name 'time' is not defined
是什么导致了这个错误,我该如何修复我的代码?
编辑:坦率地说,我也不确定自己遇到了什么问题。第二天早上我运行了代码,它工作得很好。我发誓昨晚的代码产生了错误......无论如何,感谢您的洞察力。
【问题讨论】:
-
退后一步并正确理解
import的工作原理对您来说非常重要。否则,您将浪费大量时间随机更改代码以使其正常工作。也许你应该再问一个关于import的不理解的问题 -
@gnibbler:我绝对理解import命令,你会用
import spam得到一个完整的模块,然后调用每个函数spam.eggs(),你会用from spam import eggs得到一个特定的函数和spam命名空间,所以你可以调用函数eggs()。