【发布时间】:2013-06-19 19:04:27
【问题描述】:
如何将变量从一个文件导入到另一个文件?
示例:file1 有变量x1 和x2 如何将它们传递给file2?
如何将所有变量从一个变量导入另一个变量?
【问题讨论】:
-
为什么你想这样做?根据用例,这实际上并不是您真正想要的。
标签: python file variables import
如何将变量从一个文件导入到另一个文件?
示例:file1 有变量x1 和x2 如何将它们传递给file2?
如何将所有变量从一个变量导入另一个变量?
【问题讨论】:
标签: python file variables import
from file1 import *
将导入file1中的所有对象和方法
【讨论】:
ImportError: No module named file1
__init__.py 文件吗?有关详细信息,请参阅here。
在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..
来自docs:
虽然在模块级别使用
from module import *是有效的,但它是 通常是个坏主意。一方面,这失去了 Python 的一个重要属性 否则有 - 您可以知道每个顶级名称由 您最喜欢的编辑器中的简单“搜索”功能。你也开 如果某些模块增加了,您将来会遇到麻烦 函数或类。
【讨论】:
import file1吧。
file1.varX。
最好明确导入 x1 和 x2:
from file1 import x1, x2
这允许您在使用 file2 时避免与来自 file1 的变量和函数发生不必要的命名空间冲突。
但如果你真的想要,你可以导入所有变量:
from file1 import *
【讨论】:
实际上这与导入变量并不完全相同:
from file1 import x1
print(x1)
和
import file1
print(file1.x1)
虽然在导入时 x1 和 file1.x1 具有相同的值,但它们不是相同的变量。例如,在 file1 中调用一个修改 x1 的函数,然后尝试打印主文件中的变量:您将看不到修改后的值。
【讨论】:
script1.py
title="Hello world"
script2.py 是我们使用 script1 变量的地方
方法一:
import script1
print(script1.title)
方法二:
from script1 import title
print(title)
【讨论】:
first.py:
a=5
second.py:
import first
print(first.a)
结果将是 5。
【讨论】:
马克response 是正确的。其实你可以打印变量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)))
【讨论】: