一尘不染

导入Python脚本到另一个?

python

我正在学习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)

纠正代码:

  • 这是课程中的代码,正在被引用

    • 不要编辑问题以更正代码

    def break_words(stuff):
    “”“This function will break up words for us.”“”
    words = stuff.split(‘ ‘)
    return words

    def sort_words(words):
    “”“Sorts the words.”“”
    return sorted(words)

    def print_first_word(words)
    “”“Prints the first word after popping it off.”“”
    word = words.poop(0)
    print word

    def print_last_word(words):
    “”“Prints the last word after popping it off.”“”
    word = words.pop(-1
    print word

    def sort_sentence(sentence):
    “”“Takes in a full sentence and returns the sorted words.”“”
    words = break_words(sentence)
    return sort_words(words)

    def print_first_and_last(sentence):
    “”“Prints the first and last words of the sentence.”“”
    words = break_words(sentence)
    print_first_word(words)
    print_last_word(words)

    def print_first_and_last_sorted(sentence):
    “”“Sorts the words then prints the first and last one.”“”
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)

    print “Let’s practice everything.”
    print ‘You'd need to know 'bout escapes with \ that do \n newlines and \t tabs.’

    poem = “”“
    \tThe lovely world
    with logic so firmly planted
    cannot discern \n the needs of love
    nor comprehend passion from intuition
    and requires an explantion
    \n\t\twhere there is none.
    “”“

    print “--------------“
    print poem
    print “--------------“

    five = 10 - 2 + 3 - 5
    print “This should be five: %s” % five

    def secret_formula(started):
    jelly_beans = started * 500
    jars = jelly_beans \ 1000
    crates = jars / 100
    return jelly_beans, jars, crates

    start_point = 10000
    beans, jars, crates == secret_formula(start-point)

    print “With a starting point of: %d” % start_point
    print “We’d have %d jeans, %d jars, and %d crates.” % (beans, jars, crates)

    start_point = start_point / 10

    print “We can also do that this way:”
    print “We’d have %d beans, %d jars, and %d crabapples.” % secret_formula(start_pont

    sentence = “All god\tthings come to those who weight.”

    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)
    prin sorted_words

    print_irst_and_last(sentence)

    print_first_a_last_sorted(senence)


阅读 146

收藏
2020-12-20

共1个答案

一尘不染

这取决于第一个文件中的代码的结构。

如果只是一堆函数,例如:

# first.py
def foo(): print("foo")
def bar(): print("bar")

然后,您可以导入它并使用以下功能:

# second.py
import first

first.foo()    # prints "foo"
first.bar()    # prints "bar"

要么

# second.py
from first import foo, bar

foo()          # prints "foo"
bar()          # prints "bar"

或者,导入first.py中定义的 所有 名称:

# second.py
from first import *

foo()          # prints "foo"
bar()          # prints "bar"

注意:这假定两个文件在同一目录中。

当您想从其他目录或包中的模块导入名称(函数,类等)时,它会变得更加复杂。

2020-12-20