Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在两个不同的模块中从同一模块导入同一对象:_Python_Object_Module_Namespaces - Fatal编程技术网

Python 在两个不同的模块中从同一模块导入同一对象:

Python 在两个不同的模块中从同一模块导入同一对象:,python,object,module,namespaces,Python,Object,Module,Namespaces,模块1.py: from somemod import something import module2 模块2.py: from somemod import something 模块1中的某物是否与模块2中的某物完全相同 例如,如果在导入模块2之前,模块1将执行something.val=10。模块2是否可以通过执行操作来获取值。val?或者它得到了一个不同的对象 不同的问题:导入是否执行导入的模块,即使该模块已在解释器会话中导入到其他模块中? 另外,如果模块1已经导入了某个对象,是否需

模块1.py:

from somemod import something
import module2
模块2.py:

from somemod import something
模块1中的
某物
是否与
模块2中的
某物
完全相同

例如,如果在导入模块2之前,模块1将执行
something.val=10
。模块2是否可以通过执行
操作来获取值。val
?或者它得到了一个不同的对象

不同的问题:导入
是否执行导入的模块,即使该模块已在解释器会话中导入到其他模块中?


另外,如果模块1已经导入了某个对象,是否需要从somemod导入模块2中的某个对象。模块,就像Python中的其他东西一样,是存在于内存中并由名称引用的对象。
import
语句做两件事:一是如果请求的模块还不存在,则执行导入文件中的代码;二是使其作为模块可用。后续的导入语句将跳过第一步。这意味着在
module1
中,名称
module1.something
module1.module2.something
都是指第一次导入
somemod
时创建的同一个对象。

因此在python解释器会话中,模块只能执行一次?这是正确的。假设一个模块中的代码只执行一次要简单得多,不管它从其他模块导入多少次。如果我从两个不同的类导入使用pip安装的相同模块,它不会比只导入一次消耗更多内存,对吗?