我有一个功能
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原来的布伦特功能。
这是预期的行为吗?
答案 0 :(得分:1)
您应该(通常)在您自己的模块顶部导入模块,而不是在函数内部。
模块导入将导入的名称绑定到本地作用域,这意味着如果您在函数内部导入内容,则名称将仅对该函数可用,而模块中没有任何其他内容。