如何将变量从一个文件导入另一个文件?
示例:file1
包含变量x1
和x2
如何将它们传递给file2
?
如何将所有变量从一个导入到另一个?
答案 0 :(得分:110)
from file1 import *
将导入file1
中的所有对象和方法答案 1 :(得分:55)
在file1
内导入file2
:
要从file1导入所有变量而不泛滥file2的命名空间,请使用:
import file1
#now use file1.x1, file2.x2, ... to access those variables
要将所有变量从file1导入到file2的命名空间(不推荐):
from file1 import *
#now use x1, x2..
来自docs:
虽然在模块级别使用
from module import *
是有效的 通常是个坏主意。首先,这失去了一个重要的属性Python 否则 - 你可以知道每个顶级名称由a定义的位置 您喜欢的编辑器中的简单“搜索”功能。你也打开了 如果某些模块增加额外的话,你将来会遇到麻烦 功能或类。
答案 2 :(得分:28)
最好明确导入 x1 和 x2 :
from file1 import x1, x2
这使您可以在file1
工作时避免与file2
中的变量和函数发生不必要的命名空间冲突。
但如果你真的想要,你可以导入所有变量:
from file1 import *
答案 3 :(得分:3)
first.py:
a=5
second.py:
import first
print(first.a)
结果将为5。
答案 4 :(得分:2)
实际上,使用以下内容导入变量并不完全相同:
from file1 import x1
print(x1)
和
import file1
print(file1.x1)
Altough在导入时x1和file1.x1具有相同的值,它们不是相同的变量。例如,在file1中调用一个修改x1的函数,然后尝试从主文件中打印变量:您将看不到修改后的值。
答案 5 :(得分:1)
马克是正确的。实际上,您可以打印变量的内存地址(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)))
答案 6 :(得分:1)
在Python
中,您可以像访问其他文件一样访问其他文件的内容
与其他语言(例如Java或其他语言)相比,是某种类型的库
oop基本语言,这真的很酷;
这使得可以访问文件的内容或将其导入以进行处理
或做任何事情;
这就是Python
成为以下语言的高度首选语言的主要原因
数据科学和机器学习等;
我要从.env file
访问变量,其中API links
和
秘密密钥存在。
常规结构:
from <File-Name> import *
答案 7 :(得分:0)
script1.py
Field
script2.py 是我们使用script1变量的地方
方法1:
title="Hello world"
方法2:
import script1
print(script1.title)