python 多文件共享变量,python多模块共享参数
最近考虑编码风格,突然想到如何在一个python应用的多个模块之间共享一个变量。最早接触python是在python 2.5版本左右。当时由于python的导入规则设置问题,很难解决本文提到的问题,不知不觉也到了python 3.10版本。因为python3中修改了python的导入规则,所以在Python多模块下共享变量变得很容易。本文的解决方案主要依赖于python3的绝对路径命名空间。
举例说明:
代码层次结构:
描述:
Main.py是我们要运行的主文件,sub_module模块和main.py是一级的,两者在同一个目录下。
四个文件,测试模块和x.py.py _ _ init _ _。py,都在同一个目录下,具有相同的级别关系。其中__init__。py文件为空。
给出x.py,y.py的文件内容:
x.py
打印(“输入x文件”)
从。导入测试
打印(
test.x,
test.x.x,
test.x.y,
)
test.x.x=15
test.x.y=15
打印(
test.x,
test.x.x,
test.x.y,
)
打印(退出x文件)y.py
打印(“输入y文件”)
从。导入测试
从。测试导入*
打印(
test.x,
test.x.x,
test.x.y,
)
test.x.x=20
test.x.y=20
打印(
test.x,
test.x.x,
test.x.y,
)
__init__的内容。打印下的py文件(“退出y文件”)测试模块:
打印(“输入test.init文件”)
X类:
def __init__(self,x: int,y: int):
self.x=x
self.y=y
x=X(11,11)
打印(x,x.x,x.y)
print(退出test.init文件)================================
运行main.py文件:
运行结果:
输入test.init文件
位于0x7ff5eebc5050 11 11的sub_module.test.X对象
退出测试. init文件
主文件:sub_module.test.X对象位于0x7ff5eebc5050 11 11
输入x文件
位于0x7ff5eebc5050 11 11的sub_module.test.X对象
位于0x7ff5eebc5050 15 15的sub_module.test.X对象
退出x文件
输入y文件
位于0x7ff5eebc5050 15 15的sub_module.test.X对象
位于0x7ff5eebc5050 20 20的sub_module.test.X对象
退出y文件
主文件:sub_module.test.X对象位于0x7ff5eebc5050 20 20
============================================
从上面的运行结果可以看出,python3版本3的命名空间都是绝对路径,也就是说,一个模块中定义的变量,只要能在另一个模块中导入引用,就可以共享。
============================================
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。