python 多文件共享变量,python多模块共享参数

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: