人工知能(python)開発-モジュール(module)


一、モジュールの概念
1、モジュールの定義
モジュールは一連の変数、関数、クラスなどからなるプログラム群モジュールであるファイルであり、モジュールファイル名は通常.py末尾
2、モジュールの役割
関連する変数、関数、クラスなどの論理的な組織を一緒にして、論理構造をモジュール内の変数、関数、クラスなどを他のモジュールやプログラム呼び出しに使用できるようにします.
3、モジュールの分類
a、内蔵モジュール(builtins):解析器の内部で直接使用できる
               builtins,sys,time,itertools ,math  ...
b、標準ライブラリモジュール:pythonをインストールする時、すでに取り付けた器具は直接使用できる
                random,datetime,os,xml ...
c、サードパーティモジュール(通常オープンソース):自分でインストールする必要がある
d、ユーザが自ら作成したモジュール(他者の第三者モジュールとしてもよい)
オフィシャルライブラリリファレンス:https://docs.python.org/3/library/index.html
4、モジュール化プログラミングの利点
a、多人数開発に有利
b、コードのメンテナンスをより容易にする
c、コードの多重化率を高める
d、モジュール化プログラミングは関数名と変数名の衝突問題を解決するのに役立つ
二、モジュールの導入
1、import文
文法importモジュール名1[asモジュール新名1]、モジュール名2[asモジュール新名2],...モジュール全体を現在のモジュールにインポートする例
        import math            #       
        import sys, os          #   sys os  
        import copy as cp

属性使用モジュール名属性名
math.factorial(5)    #  5   

2、from import文
構文fromモジュール名importモジュール属性名[as属性新名1]、モジュール属性名2[as属性新名2]の役割あるモジュールの1つ以上の属性を現在のモジュールにインポートする役割ドメインの例
from math import pi
from math import sin
from math import factorial as fac

3、from import*文
構文fromモジュール名import*は、あるモジュールのすべての属性を現在のモジュールの例にインポートする役割を果たします.
from math import *
s = sin(pi/2)
print(factorial(10))

三、モジュールのロードと実行
1、import文検索モジュールの経路順序a.検索プログラム実行時の経路(現在の経路)
        b. sys.pathが提供するパス
c.内蔵モジュールの検索
2、PYTHONPATH環境変数この環境変数の値はpython 3の解析器起動時に自動的にsysにロードされる.pathリスト
3、カスタムモジュールのロード方法
a、方法1カスタムモジュールと実行するコードを同一ディレクトリの下に置くb、方法2実行するコードにsysを追加する.path.apend(「カスタムモジュールパスを指定」)c、メソッド3、および組み込みモジュールを一緒に配置(推奨しない)d、メソッド4現在の端末の環境変数を構成する
$ export  PYTHONPATH=$PYTHONPATH:/home/xxx/          
$ printenv
注:Linux/Unixはコマンドprintenvですべての環境変数を表示します.exportは現在の端末にのみ使用されます.
4、モジュールのロードプロセスモジュールのインポート時、モジュールのすべての文が実行される
モジュールが既にインポートされている場合、再インポート時にモジュール内の文は再実行されません.
5、モジュールの再ロード
impモジュールのreload属性で指定モジュールを再ロード
import mymod       #       
import imp         #   imp 
imp.reload(mymod)  #           mymod   

6、モジュールがインポートされ、実行されるプロセスa.まず関連経路を検索してモジュール(.pyファイル)を探す
b.このモジュールに対応するものがあるか否かを判断する.pyファイル、もし.pycファイル比pyファイルが新しい場合は、直接ロードします.pycファイル
c.そうでない場合はモジュールを用いる.pyファイル生成pycとロード実行
7、モジュールのコンパイルcompileコンパイル解釈実行
mymod.py   ----->  mymod.pyc   ------->     python3
四、補充
1、dir関数
dir([オブジェクト])は、文字列リストの役割aを返し、パラメータ呼び出しがなければ、現在の役割ドメイン内のすべての変数のリストbを返し、パラメータとしてオブジェクトが与えられた場合、そのオブジェクトの変化量(属性)リスト1を返すモジュールに対して、このモジュールのすべての変数を返す2)1つのクラスオブジェクトに対して、クラスオブジェクトのすべての変数を返し、ベースクラスオブジェクトのすべての変数を返します3)他のオブジェクトに対して、すべての変数、クラス変数、ベースクラス変数を返します
五、付録
人工知能(python)-ディレクトリの要約