python从文件导入函数-全局名称'';没有定义

python从文件导入函数-全局名称'';没有定义,python,function,file,import,Python,Function,File,Import,我在从文件中导入一个函数并在另一个函数中执行时遇到问题。我无法将变量“efgh”传递给fun_a() #猫乐a.py def fun_a(abcd): 打印“%s-%s%”(abcd,efgh) 如果名称=“\uuuuu main\uuuuuuuu”: 通过 #蟒蛇 Python 2.7.5(默认值,2015年10月11日,17:47:16)[GCC 4.8.3 20140911(红帽 4.8.3-9)],在linux2上键入“帮助”、“版权”、“信用证”或“许可证” 更多信息。 >>>从一个进

我在从文件中导入一个函数并在另一个函数中执行时遇到问题。我无法将变量“efgh”传递给fun_a()

#猫乐a.py
def fun_a(abcd):
打印“%s-%s%”(abcd,efgh)
如果名称=“\uuuuu main\uuuuuuuu”:
通过
#蟒蛇
Python 2.7.5(默认值,2015年10月11日,17:47:16)[GCC 4.8.3 20140911(红帽
4.8.3-9)],在linux2上键入“帮助”、“版权”、“信用证”或“许可证”
更多信息。
>>>从一个进口*
>>>efgh='test2'
>>>乐趣(“测试1”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“fun_a.py”,第2行,在fun_a中
打印“%s-%s%”(abcd,efgh)
NameError:未定义全局名称“efgh”

我希望结果是“test1-test2”。

声明
全局efgh
,然后使用它

Ex:

global efgh
efgh = 'test2'
def fun_a(abcd):
    print '%s - %s'%(abcd, efgh)

fun_a('test1')

这不可能奏效
global
在Python中的意思是“在单个模块内”;无法[*]在shell中定义会影响导入脚本的全局变量

您应该将
efgh
作为函数的参数

[*]好吧,你可以用猴子补丁,但不要那样做

global efgh
efgh = 'test2'
def fun_a(abcd):
    print '%s - %s'%(abcd, efgh)

fun_a('test1')