我正在学习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)
这取决于第一个文件中的代码的结构。
如果只是一堆函数,例如:
# 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"
注意:这假定两个文件在同一目录中。
当您想从其他目录或包中的模块导入名称(函数,类等)时,它会变得更加复杂。