如何将变量从一个文件导入到另一个文件?
例子:file1有变量x1和x2如何将它们传递给file2?
file1
x1
x2
file2
如何将变量的所有从一个导入到另一个?
在file2中导入file1:
要从file1导入所有变量,而不淹没file2的命名空间,使用:
import file1 #now use file1.x1, file2.x2, ... to access those variables
将所有变量从file1导入到file2的命名空间(不推荐):
from file1 import * #now use x1, x2..
从文档:
虽然在模块级别使用from module import *是有效的,但它是 通常是个坏主意。首先,这失去了Python的一个重要属性 否则,您可以知道每个顶层名称是由a定义的 简单的“搜索”功能在您最喜爱的编辑器。你也会打开 如果某些模块增加了额外的内容,你自己将来会遇到麻烦 .函数或类
from module import *
from file1 import *
将导入file1中的所有对象和方法
最好显式地导入x1和x2:
from file1 import x1, x2
这允许你在file2中工作时避免与file1中的变量和函数发生不必要的名称空间冲突。
但如果你真的想,你可以导入所有变量:
实际上,这和导入变量是不一样的:
from file1 import x1 print(x1)
而且
import file1 print(file1.x1)
虽然在导入x1和file1时。X1有相同的值,它们不是相同的变量。例如,调用file1中的函数来修改x1,然后尝试从主文件中打印该变量:您将看不到修改后的值。
Marc 响应是正确的。实际上,你可以打印变量print(hex(id(libvar))的内存地址,你可以看到地址是不同的。
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)
方法2:
from script1 import title print(title)
first.py:
a=5
second.py:
import first print(first.a)
结果是5。
如果你需要从同一级别或更低的目录导入一个变量,你可以使用"import_module"来自您对项目的CWD:
from importlib import import_module mod = import_module( f"{cwd}.source.myfolder.myfile" ) var = getattr(mod, "my_variable")