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