模块调用模块时出错

时间:2012-08-22 09:05:30

标签: python

我有一个功能

def brent(n):

在模块素数中。布伦特需要模块分数,随机

在我的主要模块中,我做了:

import prime # brent is found in here
import fractions # required for brent
import random # required for brent

当我打电话给布伦特(n)时,它会发错,说它找不到随机的。解决方法是放置

import random
import fractions

INSIDE原来的布伦特功能。

这是预期的行为吗?

1 个答案:

答案 0 :(得分:1)

您应该(通常)在您自己的模块顶部导入模块,而不是在函数内部。

模块导入将导入的名称绑定到本地作用域,这意味着如果您在函数内部导入内容,则名称将仅对该函数可用,而模块中没有任何其他内容。