我将一个简单的模块导入到我的 Python shell 中。它仅包含以下功能(它的作用对我的问题并不重要)
def generateMessages():
messagesPerSecond = [getPoisson(rate1) for i in range(0, t)]
messages = []
while i < t:
while j < messagesPerSecond[i]:
millisecond = round(random.random(), 3)
messages.append(i + millisecond)
j += 1
i += 1
当我想在 shell 中测试它时,我设置了变量
t = 100
rate1 = 3
并调用generateMessages()。
但是我得到一个错误 NameError: global name 't' is not defined。 但它是有定义的!
为什么会这样?我该如何阻止它?
请您参考如下方法:
shell 中的全局变量与 generateMessages() 看到的全局变量不同。每个模块都有自己的。
设置 t 在模块 generateMessages() 中定义。
您可以动态地执行此操作:
>>> import yourmodule
>>> yourmodule.t = 100
>>> yourmodule.rate1 = 3
