在Python中导入模块和函数时出现问题

时间:2018-10-05 03:08:39

标签: python

我有两个文件:在其中一个文件中(名为myrandom),我定义了一个名为spinner的函数,该函数将从1到6中选择一个随机数并返回其值。在名为main的第二个文件中,我导入了第一个文件(作为模块),并且还调用了spinner函数。

这是文件myrandom的代码:

def spinner():
    import random
    val = random.choice([1, 2, 3, 4, 5, 6])
    return val

这是main的代码:

import myrandom

x = spinner()
print(x)

我的问题是,当我运行main时,收到以下错误消息:“ NameError:未定义名称spinner()”。我不知道为什么会出现此错误,因为我还有其他具有类似特征的文件和模块,可以正常运行。

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

您需要像这样使用它:

import myrandom

x = myrandom.spinner()

或直接导入:

from myrandom import spinner
x = spinner()

或使用星号导入:

from myrandom import *
x = spinner()

答案 1 :(得分:0)

您应该这样导入它:

import myrandom

x = myrandom.spinner()

或类似这样:

from myrandom import spinner

x = spinner()

或类似这样:

from myrandom import *

x = spinner()

有关不同导入方式的说明,请参见:Importing modules in Python - best practice