Python从导入的文件中提取变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python从导入的文件中提取变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1491字,纯文字阅读大概需要3分钟。
内容图文
![Python从导入的文件中提取变量](/upload/InfoBanner/zyjiaocheng/665/aa3251723ee74e5c828328100f88753b.jpg)
我有3个档案.一种是定义变量,另两种包含所需的模块.
变量
my_var = ""
test.py
import variable
def trial():
variable.my_var = "Hello"
main.py(不起作用)
from variable import *
from test import trial
if __name__ == "__main__":
trial()
print my_var
当我运行main.py时,它什么也没有.但是,如果我这样更改main.py,
main.py(工作)
import variable
from test import trial
if __name__ == "__main__":
trial()
print variable.my_var
它给了我预期的输出,即你好.
在我的情况下,那个variable.py包含更多变量,并且我不想使用变量.<变量名称>同时访问它们. <变量名>在修改它们时,使用变量.这不是问题,因为我将仅根据用户的输入进行一次修改,然后在其余时间多次跨多个文件访问它们.
现在我的问题是,有没有办法在test.py修改完main.py中的所有变量后,将它们提取出来,并在不带前缀变量的情况下使用它们?
解决方法:
您想要实现的目标是不可能的. from MODULE import *将所有变量名称和值导入您的名称空间,但不导入变量本身.变量是在您的本地名称空间中分配的,因此更改其值不会反映在其来源上.但是,由于您导入的值基本上是对实例的引用,所以会反映对可变对象的更改.
这就是为什么不建议使用上述结构的不合格进口的许多原因之一.相反,您应该质疑程序结构和所做的设计决策.从长远来看,使用大量的模块级变量会变得很麻烦并且非常不便.
考虑对您的应用程序使用更结构化的方法,例如通过使用类.
我想再次指出并感谢this thread,从本质上讲,它解决了同一问题.
编辑为了完整性.可以,但是不建议使用此方法.每次对非引用变量进行修改时,都必须重新导入该模块:
from variable import * # optional
from test import trial
if __name__ == "__main__":
trial()
from variable import * # simply re-import the variables...
print my_var
内容总结
以上是互联网集市为您收集整理的Python从导入的文件中提取变量全部内容,希望文章能够帮你解决Python从导入的文件中提取变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。