4

簡単な質問です。検索しても役に立ちませんでした。ファイル「funcs.py」があるとします。その中に、現在のスクリプトで呼び出したい関数があります。この関数は別のライブラリ (pandas など) を使用していますが、そのライブラリはどこにインポートすればよいですか? コンベンションは何ですか?

funcs.py の関数内に入れますか?

#funcs.py
def make_df():
    import pandas as pd
    return pd.DataFrame(index=[1,2,3],data=[1,2,3])

funcs.py の関数の外側に配置しますか?

#funcs.py
import pandas as pd

def make_df():
    return pd.DataFrame(index=[1,2,3],data=[1,2,3])

それとも、現在使用しているスクリプトに入れますか?

#main.py
import pandas as pd

from funcs import make_df

df = make_df()

よろしくお願いいたします。

4

4 に答える 4

1

#3は機能しません。ほとんどの場合、#2 が推奨されるオプションです (主な例外は、ライブラリがその関数によってのみ使用される大きな (インポートに時間がかかる) ライブラリである場合です)。次のオプションのいずれかを検討することもできます (オプションの依存関係用)。

#funcs.py
try:
    import pandas as pd
except ImportError:
    pass

def make_df():
    return pd.DataFrame(index=[1,2,3],data=[1,2,3])

また

#funcs.py
try:
    import pandas as pd
except ImportError:
    pass

if pd is not None:
    def make_df():
        return pd.DataFrame(index=[1,2,3],data=[1,2,3])
于 2018-09-26T21:39:27.527 に答える