Skip to main content
 首页 » 编程设计

Python Shell : Global name 't' is not define. 我:但它是

2025年05月04日16zhoujg

我将一个简单的模块导入到我的 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