我有一个modules.py文件:
global dns_server_ip
def SetVnetGlobalParameters():
dns_server_ip = '192.168.3.120'
我在abc.py文件中导入此文件
from modules import *
SetVnetGlobalParameters()
print(dns_server_ip)
但'dns_server_ip'仍无法访问。
我想通过Function设置全局参数。任何帮助将不胜感激! 感谢..
答案 0 :(得分:10)
根据你的问题,我知道你是python的初学者。
导入模块时,您只使用模块名称,不需要包含扩展名或后缀(py),在您的代码中,您会错过起始单引号。
这是您修改后的代码: 它是modules.py
dns_server_ip = ''
def SetVnetGlobalParameters():
global dns_server_ip
dns_server_ip = '192.168.3.120′
这是你的abc.py
import modules
modules.SetVnetGlobalParameters()
print modules.dns_server_ip
这里通过global关键字我们告诉python解释器改变或指出全局变量而不是局部变量,并且变量总是global
或local
如果变量是两者(本地和全局)你会得到python UnboundLocalError
异常,如果你没有把那个全局关键字
global dns_server_ip
将创建dns_server_ip作为新的局部变量。关键字global
仅适用于函数
答案 1 :(得分:3)
在modules.py
中dns_server_ip = None
def SetVnetGlobalParameters():
global dns_server_ip
dns_server_ip = '192.168.3.120'
在abc.py
import modules
modules.SetVnetGlobalParameters()
print(modules.dns_server_ip)