Pythonバッグ
3629 ワード
1.モジュールモジュールはpythoコードを含むファイルであり、接尾辞名はYESである.pyでいい、モジュールはpythonファイル モジュールを使用する理由 プログラムが大きすぎて、作成・メンテナンスが非常に不便で、分割が必要 モジュールがコード再利用を増やすことができる方式 ネーミングスペースとして使用し、ネーミング競合を回避 モジュールの定義方法 モジュールは普通のファイルなので、どんなコードでも直接書くことができます ただしモジュールの仕様により、以下の内容をブロックに記述することが望ましい 関数(単一機能) クラス(類似機能の組合せ、または類似業務モジュール) テストコード
モジュールの使い方 モジュール直接導入 モジュール名が直接数字で始まる場合は、importlibヘルプが必要 文法import module_name module_name.function_name module_name.class_name ケース01,02,p 01,p 02 importモジュールas別名 導入と同時にモジュールに別名を付ける 残りの使い方は1つ目と同じ ケースp 03 from module_name import func_name, class_name 上記の方法で選択的に導入 使用時にインポートしたコンテンツをそのまま使用でき、接頭辞は不要 ケースp 04 from module_name import * 導入モジュール全内容 ケースp 05
モジュールコードの導入時に受動的に実行される問題を効果的に回避できる 希望するプログラムのエントリはすべてこのコードをエントリとすることを推奨する
2.モジュールの検索パスとストレージモジュールの検索パスとは: モジュールをロードすると、そのモジュールを探しています システムデフォルトのモジュール探索経路 検索パス追加 モジュールのロード順 上検索メモリに既にロードされているモジュール pythonの内蔵モジュールを検索 検索sys.Pathパス
パッケージパッケージは組織管理コード方式であり、パッケージにはモジュールが格納されている-モジュールを含めるためのフォルダがパッケージである カスタムパッケージの構成 パケットのインポート操作 import package_name 直接1つのパッケージを導入する、initを使用することができる.pyの内容 使い方: この方式のアクセス内容は ケースpkg 01,p 07.py
import package_name as p 具体的な用法・作用方式は、上記単純導入と一致 この方法はinitに対してデフォルトであることに注意する.pyコンテンツのインポート import package.module インポートパッケージのいずれかの具体的なモジュール、 使い方 ケースp 08.py
import package.module as pm
from ... importインポート from package import module1, module2, module3, ..... この導入方法は実行しない from package import * 現在のパッケージのインポート 使い方 ケースp 09.py,注意このインポートの具体的な内容
from package.module import * パッケージで指定されたモジュールのすべてをインポート 使い方 開発環境ではよくあるので他のモジュールを使って、現在のパッケージに他のモジュールの内容を直接導入できる import完全なパッケージまたはモジュールの経路 from package import*を使用している場合、*導入可能なコンテンツ
ネーミングスペース異なる位置の異なる機能を区別するための同じ名称の関数または変数の特定のプレフィックス ネーミング衝突防止作用
if __name__ == "__main__
の使用2.モジュールの検索パスとストレージ
import sys
sys.path
# p06.py
sys.path.append(dir)
パッケージ
|---
|---|--- __init__.py
|---|--- 1
|---|--- 2
|---|--- ( )
|---|---|--- __init__.py
|---|---|--- 1
|---|---|--- 2
package_name.func_name
package_name.class_name.func_name()
package.module.func_name
package.module.class.fun()
package.module.class.var
__init__
の内容 from pkg01 import p01
p01.sayHello()
__init__.py
ファイル内のすべての関数とクラス func_name()
class_name.func_name()
class_name.var
func_name()
class_name.func_name()
__all__
の使い方__init__.py
でファイルが空の場合、またはない場合__all__
であれば、__init__
の内容のみを導入できる__init__
・・__all__
の値が設定されている場合は__all__
指定されたサブパッケージまたはモジュールに従ってロードするとロードされない__init__
の内容__all__=['module1', 'module2', 'package1'.........]
ネーミングスペース
setName()
Student.setName()
Dog.setName()