如何在本地函数中使用导入模块中的函数?

时间:2017-06-20 10:34:14

标签: python function import module global

我有一个python模块a.py

def fun ( c, d, e, f ):
    print ( c + d + e + f )

在我的main.py

from a import *

def fun1 ():
    c = 'hello '
    d = 'how '
    e = 'are '
    f = 'you?'
    fun (c, d, e, f)

fun1 ()

为什么我收到错误:

NameError: global name 'fun' is not defined

我也尝试过:

from a import *

def fun1 ():
    global fun
    c = 'hello '
    d = 'how '
    e = 'are '
    f = 'you?'
    fun (c, d, e, f)

fun1 ()

错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

您需要将__init__.py添加到位于a.py所在的同一文件夹中。

如果你的main.py不在同一个文件夹中,你需要将a.py所在文件夹的目录附加到你的sys.path。

如果文件夹结构如下所示:

./a_folder/a.py
./a_floder/__init__.py
./main_folder/main.py

main.py中的代码应为:

import sys
sys.path.append('../a_floder/')
from a import *

如果文件夹结构如下所示:

./a.py
./__init__.py
./main.py

main.py中的代码应为:

from a import *