【发布时间】:2011-12-22 20:09:44
【问题描述】:
好的,我尝试查找问题,但我得到了很多让我感到困惑的答案(抱歉我的无知)。我写了一个脚本,我想导入另一个脚本,这样当我在终端中运行它时,就好像第二个脚本是第一个脚本的一部分。我该怎么做呢?感谢您的帮助。
【问题讨论】:
好的,我尝试查找问题,但我得到了很多让我感到困惑的答案(抱歉我的无知)。我写了一个脚本,我想导入另一个脚本,这样当我在终端中运行它时,就好像第二个脚本是第一个脚本的一部分。我该怎么做呢?感谢您的帮助。
【问题讨论】:
假设您希望 a.py 使用 b.py。如果b.py 中的代码是在任何函数或类之外编写的,运行它所需要做的只是:
import b
如果代码在某个函数中,例如:
# Code in b.py
def some_func():
# Implementation
那么你需要:
import b
b.some_func()
或:
from b import some_func
some_func()
最后,如果你的代码在一个类的函数中,例如:
# Code in b.py
class ClassB():
def some_func(self):
# Implementation
你可以:
from b import ClassB
obj_b = ClassB()
obj_b.some_func()
【讨论】:
import 语句起作用。您的来电。
如果您希望仅将脚本插入内联(如#include),那么您做错了。
这将从您的其他脚本中导入所有符号,就好像它们是在本地定义的一样(除了导入代码中的全局变量访问范围将限于导入的模块,而不是本地模块)。
from OtherScript import *
【讨论】:
as if defined locally 的说法不正确。名称将被导入到本地命名空间,但如果他们访问任何全局变量,它将是导入模块的全局变量,而不是本地模块的全局变量。
如果你有一个名为first.py的脚本:
def print_something():
print("something")
然后你可以import来自另一个脚本(在同一目录中):
import first
first.print_something()
【讨论】:
导入,所以如果其他脚本名为FirstScrity.py
import FirstScript
要使用该脚本中的某些内容,您必须执行 FirstScript。“使用的名称”
如果你不想这样做,你可以这样做
from FirstScript import "NAME OF THING TO USE"
或
from FirstScript import *
【讨论】: