python中跨多个文件的全局变量

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仅用于函数中

你可以检查全局关键字,python模块