Python Shell:未定义全局名称"t".我:但确实如此

Cod*_*ein 1 python shell global-variables

我在我的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
Run Code Online (Sandbox Code Playgroud)

当我想在shell中测试它时,我设置了变量

t = 100
rate1 = 3
Run Code Online (Sandbox Code Playgroud)

并打电话generateMessages().

但后来我收到了一个错误NameError: global name 't' is not defined.但是它被定义了!

为什么会这样?我怎么阻止这个?

Mar*_*ers 7

shell中的全局变量与generateMessages()看到的全局变量不同.每个模块都有自己的模块.

t 在模块中generateMessages()设置定义.

你可以动态地做到这一点:

>>> import yourmodule
>>> yourmodule.t = 100
>>> yourmodule.rate1 = 3
Run Code Online (Sandbox Code Playgroud)