web-dev-qa-db-ja.com

Pythonスクリプトを別のスクリプトにインポートしますか?

Zed ShawのLearn Python The Hard Wayを通り、レッスン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)
51
astroblack

最初のファイルのコードがどのように構成されているかによります。

次のような単なる関数の束の場合:

# 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"

または、all first.pyで定義されたシンボルをインポートするには:

# second.py
from first import *

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

注:これは、2つのファイルが同じディレクトリにあることを前提としています。

他のディレクトリまたはモジュール内のシンボル(関数、クラスなど)をインポートする場合、少し複雑になります。

88
jedwards

(少なくともpython 3で)これを機能させるには、同じディレクトリに__init__.pyという名前のファイルが必要です。

21
soungalo

以下は私のために働いたし、それも非常に簡単なようだ:

スクリプト./data/get_my_file.pyをインポートし、その中のget_set1()関数にアクセスしたいと仮定しましょう。

import sys
sys.path.insert(0, './data/')
import get_my_file as db

print (db.get_set1())
2

この作品を願っています

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 \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(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)
0
Amar