ast*_*ack 53 python import python-2.7
我正在通过Zed Shaw的学习Python艰难的方式,我在第26课.在本课中,我们必须修复一些代码,代码从另一个脚本调用函数.他说我们不必导入它们来通过测试,但我很好奇我们将如何做到这一点.
以下是调用前一个脚本的特定代码行:
words = ex25.break_words(sentence)
sorted_words = ex25.sort_words(words)
print_first_word(words)
print_last_word(words)
print_first_word(sorted_words)
print_last_word(sorted_words)
sorted_words = ex25.sort_sentence(sentence)
print sorted_words
print_first_and_last(sentence)
print_first_a_last_sorted(sentence)
Run Code Online (Sandbox Code Playgroud)
jed*_*rds 94
这取决于第一个文件中的代码是如何构造的.
如果它只是一堆功能,例如:
# first.py
def foo(): print("foo")
def bar(): print("bar")
Run Code Online (Sandbox Code Playgroud)
然后你可以导入它并使用如下函数:
# second.py
import first
first.foo() # prints "foo"
first.bar() # prints "bar"
Run Code Online (Sandbox Code Playgroud)
要么
# second.py
from first import foo, bar
foo() # prints "foo"
bar() # prints "bar"
Run Code Online (Sandbox Code Playgroud)
或者,导入first.py中定义的所有符号:
# second.py
from first import *
foo() # prints "foo"
bar() # prints "bar"
Run Code Online (Sandbox Code Playgroud)
注意:这假定这两个文件位于同一目录中.
当你想在其他目录或模块内导入符号(函数,类等)时,它会变得有点复杂.
sou*_*alo 21
值得一提的是(至少在python 3中),为了使它能够工作,你必须有一个__init__.py
在同一目录中命名的文件.
以下对我有用,看起来也很简单:
假设我们要导入一个脚本 ./data/get_my_file.py 并希望访问其中的 get_set1() 函数。
import sys
sys.path.insert(0, './data/')
import get_my_file as db
print (db.get_set1())
Run Code Online (Sandbox Code Playgroud)