「手をつないでPythonを学ぶ」30モジュール

前回の記事「手をつないでPythonを学ぶ」29-無名関数では、無名関数の形式と使用法を紹介しました。

関数を使用する利点の1つは、カスタム関数のコードブロックをメインプログラムから分離できるため、コード構造全体がより明確で読みやすくなることです。同時に、カスタム関数を使用することで、コードセグメントの再利用を実現し、プログラム全体で同じ効果を実現するコードセグメントの繰り返し発生を回避できます。

しかし、以前に学んだ機能はすべてプログラムまたはファイルに具体化されており、再利用することはできますが、このプログラムまたはファイルでのみ再利用できます。同じ機能を複数のプログラムやファイルで再利用したい場合、私たちが提示する方法で実装することは不可能です。

本日は、関数を別々のファイルに保存する方法を紹介します。インポートすることで、各プログラムやファイルに同じ関数を繰り返し書き込むことなく、同じ関数を異なるプログラムやファイルで再利用できます。コード。

このメソッドは-モジュールです。

モジュールは、関数を格納する独立したファイルです。importステートメントを使用して、現在実行中のプログラムのモジュール内のコードを使用します。

1.モジュールの意味と価値

関数を別のファイルに保存することで、関数の実装プロセスを考慮せずに、より高いレベルのコードロジックに集中できます。自分で作成したカスタム関数を再利用できるだけでなく、これらのモジュール(または関数)を他のプログラマーと共有したり、他のより高度な関数ライブラリを使用したりすることもできます。

このシリーズの最初の記事- 「手をつないでPythonを学ぶ」1-なぜPythonを学ぶのですか?では、ライブラリがPythonの最もユニークな機能の1つであることを紹介しました。

Pythonには、公式に提供されている多くの組み込みライブラリだけでなく、Python用に外部開発者によって開発された多くのサードパーティライブラリもあります。これらの「ライブラリ」の恩恵を受けて、多くの複雑で強力な機能をユーザーがプログラムする必要はありません。これらのライブラリをPythonで呼び出す限り、グラフィック処理、自然言語分析、Webクローラー、機械学習など、多くの強力な関数を簡単に実装できます。

ここで説明するライブラリとは、複数の関数で構成される大きなモジュールである関数ライブラリを指します。これらのライブラリを呼び出すプロセスは、今日説明するimportステートメントを使用してモジュールをインポートするプロセスです。

したがって、今日のコンテンツは習得と理解が非常に簡単ですが、Pythonの初心者と強力なPythonの世界全体をつなぐリンクです。これらのライブラリの恩恵を受けて、いくつかの基本的なPythonステートメントと構造を習得できる限り、他のプログラミング言語では想像を絶する多くの強力な関数を実現できます。

次の段階で学習するNumpyとPandasのように、データ分析の分野で最も基本的で重要な2つのライブラリです。NumpyとPandasをインポートして使用することで、Pythonを使用したデータ分析の方法を習得できるだけでなく、Excelを超えて、データ分析の神になることができます。

だから、一緒に頑張りましょう!

2.モジュールを作成します

関数をインポート可能にするには、最初にモジュールを作成する必要があります。

モジュールは、拡張子が.pyのファイルであり、プログラムにインポートされるコードが含まれています。

Jupyter Notebookのファイル拡張子は.ipynbであるため、モジュールとして保存およびインポートすることはできません。したがって、モジュールファイルを作成するときは、PyCharmソフトウェアを使用してコードを記述し、モジュールを保存する必要があります。モジュールをインポートして使用する場合は、JupyterNotebookまたはPyCharmを自由に使用できます。

2つの関数buy_iphone()とbuy_ipadを一緒に含むモジュールを作成しましょう。

In [1]: def buy_iphone(amount, model, *others):   # 使用了不定长函数
            print("\n购买{}台{},型号及颜色等要求如下:".format(amount, model))
            for other in others:
                print("- {}".format(other))
        def buy_ipad(amount, model, *others):
            print("\n购买{}台{},型号及颜色等要求如下:".format(amount, model))
            for other in others:
                print("- {}".format(other))

このコードスニペットをapple.pyとしてPyCharmに保存します(デフォルトでは.pyとして保存します)。これは私たちが作成した最初のモジュールであり、しばらくの間複数回インポートできる関数が含まれています。

3.モジュールをインポートする方法

モジュールをインポートする方法はたくさんありますが、それぞれの方法を以下に1つずつ紹介します。

a。モジュール全体をインポートします

apple.pyが配置されているディレクトリに、shopping_a.pyという名前のファイルを作成します。(Jupyter Notebookで作成した場合、ファイル名はshopping_a.ipynbです。大丈夫です。)

importステートメントを使用して、作成したモジュールをインポートすると、内部の関数を呼び出すことができます。

In [2]: import apple
        apple.buy_iphone("1", "ihone 12", "型号:Pro Max", "颜色:蓝色", "内存:128GB", "1年延保服务")
        apple.buy_ipad("2", "iPad", "型号:Air4", "网络:WIFI", "颜色:绿色", "内存:256GB", "1年延保服务")

このコードを実行すると、import appleはPythonにapple.pyファイルを開き、その中のすべての関数を現在のプログラムにコピーするように指示します。これにより、他のファイルまたはモジュールから関数を呼び出す目的が達成されます。構文形式は次のとおりです。

インポートモジュール名

コピーと呼び出しのプロセスがどのように実装されているかを理解する必要はありません。apple.pyで定義されているすべての関数がshopping_a.pyファイルのコードで使用できることを知っておく必要があります。

インポートされたモジュールで特定の関数を呼び出すには、インポートされたモジュールの名前と、使用する関数の名前を英語のピリオド「。」で接続する必要があります。構文形式は次のとおりです。

モジュール名。関数名()

この文法形式は、私たちが紹介した「object.method()」と非常によく似ています。これは、Pythonプログラムの書きやすさと読みやすさの高さの表れでもあります。

上記のコードでは、apple.buy_iphone()とapple.buy_ipad()は、apple.pyの2つの関数を呼び出すプロセスです。

上記のプログラムを実行すると、次の結果が得られます。

Out[2]: 
        购买1台ihone 12,型号及颜色等要求如下:
        - 型号:Pro Max
        - 颜色:蓝色
        - 内存:128GB
        - 1年延保服务
        
        购买2台iPad,型号及颜色等要求如下:
        - 型号:Air4
        - 网络:WIFI
        - 颜色:绿色
        - 内存:256GB
        - 1年延保服务

出力を美しくするために、モジュールの関数にエスケープ文字「\ n」を追加したため、出力結果の前に空白行があります。出力結果は類似しているため、以下の例では出力結果は表示されません。プログラムを実行して入力結果を表示できます。

これは、モジュールをインポートする最初の方法です。インポートステートメントを記述してモジュールを指定するだけで、プログラム内のモジュール内のすべての関数を使用できます。

b。特定の機能をインポートする

モジュール全体をインポートするだけでなく、モジュール内の特定の関数をインポートすることもできます。このインポート方法の構文形式は次のとおりです。

モジュール名からインポート関数名

カンマ「、」を使用して関数名を区切る場合、必要に応じてモジュールから任意の数の関数をインポートすることもできます。構文形式は次のとおりです。

モジュール名からインポート関数名1、関数名2、関数名n

以前に作成したapple.pyモジュールの場合、buy_iphone()関数のみをインポートする場合は、別のファイルshopping_b.pyを作成して、次のコードを記述できます。

In [3]: from apple import buy_iphone
        buy_iphone("1", "ihone 12", "型号:Pro Max", "颜色:蓝色", "内存:128GB", "1年延保服务")

このメソッドを使用する場合、「module name.function name()」の構文形式を使用する必要はありませんが、通常のカスタム関数と同様に、関数名を使用して関数を直接呼び出すことがわかります。

c。関数にエイリアスを割り当てるためにasを使用します

インポートするモジュールの関数名はすでに定義されているかユニバーサルであるため、いずれかのプログラムの命名規則に適合せず、既存のプログラムの関数名と競合する可能性があります。この時点で、asキーワードを使用して、他のモジュールから呼び出す関数に名前を付けることができます。これは「ニックネーム」に相当し、構文形式は次のとおりです。

モジュール名から関数名をエイリアスとしてインポート

複数の関数をインポートして名前を変更する場合は、次のように記述できます。

モジュール名からインポート関数名1をエイリアス1、関数名2をエイリアス2、関数名nをエイリアスn

以前に作成したモジュールの場合、別のファイルshopping_c.pyを作成して、このインポート機能を実装できます。

In [4]: from apple import buy_iphone as ph, buy_ipad as pd
        ph("1", "ihone 12", "型号:Pro Max", "颜色:蓝色", "内存:128GB", "1年延保服务")
        pd("2", "iPad", "型号:Air4", "网络:WIFI", "颜色:绿色", "内存:256GB", "1年延保服务")

関数の名前を変更(エイリアシング)することで、適切な名前付けの問題を解決できるだけでなく、関数の名前を簡略化して使いやすくすることができます。もちろん、読みやすさに影響を与えることなく単純化を行う必要があります。\

d。asを使用して、モジュールにエイリアスを割り当てます

関数にエイリアスを割り当てるだけでなく、モジュールに簡略化されたエイリアスを割り当てることもできるため、モジュール全体をインポートして関数を呼び出すときに使用できます。構文形式は次のとおりです。

関数名をエイリアスとしてインポート

このインポート方法を使用する場合、shopping_d.pyで次のコードを使用できます。

In [5]: import apple as a
        a.buy_iphone("1", "ihone 12", "型号:Pro Max", "颜色:蓝色", "内存:128GB", "1年延保服务")
        a.buy_ipad("2", "iPad", "型号:Air4", "网络:WIFI", "颜色:绿色", "内存:256GB", "1年延保服务")

モジュールをインポートして関数を呼び出す方法は、最初に紹介した方法と同じですが、簡略化されたモジュール名aが元のモジュール名appleに置き換わる点が異なります。

プログラムにインポートされるモジュールは関数よりもはるかに少ないため、通常、関数名を単純化してコードを記述するのではなく、モジュール名を単純化するために使用されます。これにより、コードを単純化する目的が達成されますが、読みやすさにも影響しますプログラムの。

したがって、このインポート方法は、データ分析を含め、Pythonで最も一般的に使用されるインポート方法でもあります。

numpyをnpとしてインポート

パンダをpdとしてインポートする

そのようなインポートステートメント。

また、np.array()やpd.DataFrame()などの関数呼び出しステートメント。

e。モジュール内のすべての関数をインポートします

「*」を使用してモジュール内のすべての関数をインポートすると、カスタム関数のように使用できます。構文形式は次のとおりです。

モジュール名からインポート*

最後に、shopping_e.pyファイルを作成し、次のコードを記述します。

In [6]: from apple import *
        buy_iphone("1", "ihone 12", "型号:Pro Max", "颜色:蓝色", "内存:128GB", "1年延保服务")
        buy_ipad("2", "iPad", "型号:Air4", "网络:WIFI", "颜色:绿色", "内存:256GB", "1年延保服务")

モジュール内のすべての関数がインポートされるため、「。」を使用して関数を導入する代わりに、プログラム内で各関数を名前で直接呼び出すことができます。

ただし、自分で作成していないモジュール、特に大きなモジュールを使用する場合は、このインポート方法を使用しないことをお勧めします。インポートするモジュールには、確認していない関数が多数含まれている可能性があるため、その名前が現在のプログラムの関数の名前と競合する可能性があります。このような繰り返しの関数名に遭遇すると、Pythonはすべての関数を個別にインポートするのではなく、一部の関数を上書きします。これにより、予期しない結果が生じる可能性があります。

したがって、モジュール全体をインポートし、モジュール名と関数名を組み合わせて関数を呼び出して使用するのが最善の方法です。もちろん、必要に応じて、モジュール名を指定してコードを簡略化することもできます。

上記は、モジュールをインポートして他のファイルの関数を呼び出す方法の概要です。同時に、データ分析や他のPythonを学ぶための基礎となるPythonの強力な関数ライブラリの呼び出し原理も理解しています。後でアプリケーション。

次の記事では、関数の呼び出しに基づいてさらに一歩進んで、Pythonを介して他のファイルを直接読み書きする方法を見ていきますので、ご期待ください。

 

 


この記事を読んでくれてありがとう!ご不明な点がございましたら、メッセージを残してご相談ください^ _ ^

「手をつないでPythonを学ぶ」シリーズの他の記事を読むには、公式アカウントに従ってメニュー選択をクリックするか、以下のリンクをクリックして直接アクセスしてください。

「手をつないでPythonを学ぶ」1-なぜPythonを学ぶのか?

「手をつないでPythonを学ぶ」2-Pythonのインストール

「手をつないでPythonを学ぶ」3-PyCharmのインストールと構成

「手をつないでPythonを学ぶ」4-HelloWorld!

「手をつないでPythonを学ぶ」5-JupyterNotebook

「手をつないでPythonを学ぶ」6文字の識別

「手をつないでPythonを学ぶ」7-文字列のインデックス

「手をつないでPythonを学ぶ」8弦スライシング

「手をつないでPythonを学ぶ」9弦操作

「手をつないでPythonを学ぶ」10文字列関数

「手をつないでPythonを学ぶ」11-文字列のフォーマットされた出力

「手をつないでPythonを学ぶ」12-数字

「手をつないでPythonを学ぶ」13-操作

「手をつないでPythonを学ぶ」14-インタラクティブな入力

「手をつないでPythonを学ぶ」15-判断の声明

「手をつないでPythonを学ぶ」16ループステートメント

「手をつないでPythonを学ぶ」17-ループの終わり

「手をつないでPythonを学ぶ」18ループステートメント

「手をつないでPythonを学ぶ」19-第1段階の概要

「手をつないでPythonを学ぶ」20リスト

「手をつないでPythonを学ぶ」21タプル

「手をつないでPythonを学ぶ」22-辞書

「手をつないでPythonを学ぶ」23-組み込みシーケンス関数

「手をつないでPythonを学ぶ」24-コレクション

「手をつないでPythonを学ぶ」25リスト内包

「手をつないでPythonを学ぶ」26-カスタム関数

「手をつないでPythonを学ぶ」27-カスタム関数のパラメーター

「手をつないでPythonを学ぶ」28-カスタム関数の戻り値

「手をつないでPythonを学ぶ」29-無名関数 

ファンの方へ:「Pythonも言った」パブリックアカウントをフォローし、「Hand 30」に返信して、この記事で使用されているサンプル文を無料でダウンロードしてください。

Pythonについても話します-Python愛好家のための学習と共有の領域

 

おすすめ

転載: blog.csdn.net/mnpy2019/article/details/111068905