python跨文件使用全局变量的实现
Python 定义了全局变量的特性,使用global 关键字修饰
global key_word
但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出这个module就不行。
try 1:
使用一个更宏观的思路,全局变量就用全局加载的模块解决,很遗憾也是不行,
file_1:
global a a = "test"
file 2:
import file_1 print(a)
报错a没有定义
try 2:
file_1:
global a a = "test"
file 2:
import file_1 print(file_1.a) file_1.a = "aaa" print(file_1.a)
这样可以,但是如果再有一个module 想用呢?
try 2:
file_1:
global a a = "test"
file 2:
import file_1 print(file_1.a) file_1.a = "aaa" print(file_1.a)
file 2:
import file_1 import file_2 print(file_1.a) file_1.a = "aaa" print(file_1.a)
这样就会报错,因为import 加载就会执行一遍子module ,两个module y引用关系死锁了。
try 3:
最终使用公共数据结构方式解决
file_1:
def init(): global a a = {} def set(arg,value): a[arg] = value def get(arg) return a[arg]
file 2:
import file_1 print(file_1.a) file_1.set("test",(test_value))
file 2:
import file_1 import file_2 file_1.init() print(file_1.get("test"))
思路就是使用一个公共的字典的数据结构,在主module 中初始化,其他module都应用此module,但是不重新初始化字典。
相关推荐
PythonMaker 2020-07-05
liusarazhang 2020-06-28
Leewoxinyiran 2020-03-06
wyqwilliam 2019-12-13
宿舍 2019-11-11
georgeandgeorge 2019-11-01
繁华落尽梦一场 2019-04-30
xhgWanderingsoul 2019-04-26
jling 2019-07-01
pengkunstone 2019-07-01
zhichengangle 2013-01-21
LiuRuilun 2018-09-23
zhichengangle 2018-05-12
CodeAsWind 2018-05-14
PythonMaker 2018-04-20
huavhuahua 2018-09-03
hbupig 2018-12-13
举 2017-12-08