从另一个文件导入变量?

时间:2013-06-22 22:04:40

标签: python file variables import

如何将变量从一个文件导入另一个文件?

示例:file1包含变量x1x2如何将它们传递给file2

如何将所有变量从一个导入到另一个?

8 个答案:

答案 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成为以下语言的高度首选语言的主要原因  数据科学和机器学习等;

这是project structure This的图片

我要从.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)