python实现跨文件全局变量的方法

Python09

python实现跨文件全局变量的方法,第1张

python实现跨文件全局变量的方法

在使用Python编写的应用的过程中,有时候会遇到多个文件之间传递同一个全局变量的情况。本文就此给出了如下的解决方法供大家参考。

文件1:globalvar.py

#!/usr/bin/env python2.7

class GlobalVar:

db_handle = None

mq_client = None

def set_db_handle(db):

GlobalVar.db_handle = db

def get_db_handle():

return GlobalVar.db_handle

def set_mq_client(mq_cli):

GlobalVar.mq_client = mq_cli

def get_mq_client():

return GlobalVar.mq_client

文件2:set.py

import globalvar as GlobalVar

def set():

GlobalVar.set_mq_client(10)

print "------set mq_client in set.py------mq_client: " + str(GlobalVar.get_mq_client())

文件3:get.py

#!/usr/bin/env python2.7

import globalvar as GlobalVar

def get():

print "------get mq_client in get.py------mq_client: " + str(GlobalVar.get_mq_client())

文件4:main.py

#!/usr/bin/env python2.7

import set

import get

set.set()

get.get()

其中globalvar.py中定义了两个全局变量,在set.py中的set函数中对其进行赋值,在get.py文件中的get函数取值并打印。main.py函数作为应用入口,调用set和get。

这样就可以看到一个完整的应用中,全局变量的跨文件使用。

可以,把需要调用的那个文件作为模块导入就行。

from xx(文件名,注意不要加后缀.py) import *

这样就把xx文件里的变量导入进主程序了,然后直接用xx文件里的变量就行

python在一个模块中调用另一个模块中的变量步骤如下:

1、要实现变量的深度拷贝,需要使用到copy模块,导入这个模块。

2、定义一个列表变量A并进行赋值,然后将变量A赋值给变量B。

3、接着调用id()方法,分别打印变量A和变量B的id值,查看是否一致。

4、保存代码并直接使用Run这个python文件,发现打印的结果一致。

5、调用copy模块中的deepcopy()方法,按照对应的值赋值给变量C。

6、再次分别打印变量A和变量C的id值,结果发现它们不一致,说明这是深度拷贝。