Import Python Script Into Another?
我正在认真学习泽德肖的《学Python》,我正在上第26课。在本课中,我们必须修复一些代码,代码从另一个脚本调用函数。他说我们不需要进口它们来通过测试,但我很好奇我们会怎么做。
链接到课程链接到要更正的代码
下面是调用前一个脚本的特定代码行:
1 2 3 4 5 6 7 8 9 10 11 | 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) |
这取决于第一个文件中的代码的结构。
如果只是一堆函数,比如:
1 2 3 4 | # first.py def foo(): print("foo") def bar(): print("bar") |
然后您可以导入它并使用以下函数:
1 2 3 4 5 | # second.py import first first.foo() # prints"foo" first.bar() # prints"bar" |
号
或
1 2 3 4 5 | # second.py from first import foo, bar foo() # prints"foo" bar() # prints"bar" |
或者,导入first.py中定义的所有符号:
1 2 3 4 5 | # second.py from first import * foo() # prints"foo" bar() # prints"bar" |
。
注意:这假设两个文件在同一目录中。
当您想要在其他目录或模块内部导入符号(函数、类等)时,它会变得更加复杂。
值得一提的是(至少在python 3中),为了使其正常工作,必须在同一目录中有一个名为
以下内容对我很有用,而且也很简单:
假设我们要导入一个脚本./data/get_my_file.py并要访问其中的get_set1()函数。
1 2 3 4 5 | import sys sys.path.insert(0, './data/') import get_my_file as db print (db.get_set1()) |
希望这项工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 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.pop(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 newlines and \t tabs.') poem =""" \tThe lovely world with logic so firmly planted cannot discern the needs of love nor comprehend passion from intuition and requires an explantion \t\twhere there is none. """ print ("--------------") print (poem) print ("--------------") five = 10 - 2 + 3 - 5 print ("This should be five: %s" % five) def secret_formula(start_point): jelly_beans = start_point * 500 jars = jelly_beans / 1000 crates = jars / 100 return jelly_beans, jars, crates start_point = 10000 jelly_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." % (jelly_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_point)) sentence ="All god\tthings come to those who weight." words = break_words(sentence) sorted_words = sort_words(words) print_first_word(words) print_last_word(words) print_first_word(sorted_words) print_last_word(sorted_words) sorted_words = sort_sentence(sentence) print (sorted_words) print_first_and_last(sentence) print_first_and_last_sorted(sentence) |
。