from file import variable creates copies of variables(从文件导入变量创建变量的副本)
本文介绍了从文件导入变量创建变量的副本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我
from file import variable
并且模块文件中的varable
被更改,variable
的值不会更新。
如果我
import file
变量file.variable
已更新。
有没有办法选择性地从模块导入变量,将它们放在模块的本地作用域中并反映更新。
推荐答案
否。在Python中,所有变量都是对对象的引用(指针)。中的简单赋值重新绑定被分配的名称-它们将它们指向不同的对象。也就是说,如果您有两个名称,<[2-3]和 无论涉及的名称是在同一模块中还是在不同模块中,都是如此。b
,指向相同对象,例如42
,而您将b
分配给不同对象,则a
仍然指向42
。
a = b = 42
b = "Don't Panic"
print a
import file
并以file.variable
而不是from file import variable
的身份访问它。后者相当于:
import file
variable = file.variable
del file
因此,在幕后,from ... import
正在进行一个新名称的赋值。该名称与其已有的名称相同,但它位于不同的作用域中,并且是对该对象的新引用。
a
是一个列表,那么您可以随意修改a[0]
和a[2]
等等,而不需要更改a
指向的内容。您甚至可以重新分配对象的整个内容,而无需重新绑定名称:a[:] = [1, 2, 3]
。由于您更改的是对象本身,而不是任何名称所指向的对象,因此可以通过任何名称查看更改。
这篇关于从文件导入变量创建变量的副本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:从文件导入变量创建变量的副本
基础教程推荐
猜你喜欢
- 将 YAML 文件转换为 python dict 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01