Python 从另一个文件导入变量?
如何将变量从一个文件导入到另一个文件 示例:Python 从另一个文件导入变量?,python,file,variables,import,Python,File,Variables,Import,如何将变量从一个文件导入到另一个文件 示例:file1具有变量x1和x2如何将它们传递到file2 如何将所有变量从一个导入到另一个?导入file1内部file2: 要从file1导入所有变量而不淹没file2的命名空间,请使用: import file1 #now use file1.x1, file2.x2, ... to access those variables 要将所有变量从file1导入file2的命名空间(不推荐): 从: 在模块级使用模块导入中的是有效的* 通常是个坏主意。
file1
具有变量x1
和x2
如何将它们传递到file2
如何将所有变量从一个导入到另一个?导入
file1
内部file2
:
要从file1导入所有变量而不淹没file2的命名空间,请使用:
import file1
#now use file1.x1, file2.x2, ... to access those variables
要将所有变量从file1导入file2的命名空间(不推荐):
从:
在模块级使用模块导入中的是有效的*
通常是个坏主意。首先,它失去了Python的一个重要属性
否则有-您可以知道每个顶级名称由
在您最喜爱的编辑器中提供简单的“搜索”功能。你也开吗
如果某个模块增加了额外的
函数或类
将导入文件1中的所有对象和方法最好明确导入x1和x2:
from file1 import x1, x2
这允许您在使用file2
时避免与file1
中的变量和函数发生不必要的命名空间冲突
但如果确实需要,您可以导入所有变量:
from file1 import *
事实上,这与导入变量的方式不同:
from file1 import x1
print(x1)
及
尽管在导入时x1和file1.x1具有相同的值,但它们不是相同的变量。例如,调用file1中修改x1的函数,然后尝试从主文件打印变量:您将看不到修改后的值。Marc是正确的。实际上,您可以打印变量的内存地址print(hex(id(libvar))
,您可以看到地址是不同的
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
script1.py
title="Hello world"
script2.py是我们使用script1变量的地方
方法1:
import script1
print(script1.title)
from script1 import title
print(title)
方法2:
import script1
print(script1.title)
from script1 import title
print(title)
first.py:
a=5
第二点:
import first
print(first.a)
结果将是5。如果我要传递1000个变量?@Ofek只需使用
import file1
即可。它不会导入变量:\n它会导入变量,尽管您必须为每个文件预先添加file1.varX
。但请注意,这通常是您需要的。正如David所指出的,这会污染名称空间,并可能导致通过屏蔽来自其他模块(包括标准发行版中的模块)的对象和函数,我会带来灾难性的后果,但python似乎找不到文件1,因为我遇到了以下错误:ImportError:没有名为file1的模块
您是否有\uu init\uuuuuuuuuuy.py
文件?有关更多详细信息,请参阅。
import first
print(first.a)