ホームページ >バックエンド開発 >Python チュートリアル >独自の Python モジュールを作成する
実際、オンラインにはかなりの数の Python チュートリアルがあります。独自のモジュールを作成するのは非常に簡単です。これが実際に行っていることです。これは、すべての Python プログラムもモジュールであるためです。拡張子が .py であることを確認する必要があるだけです。以下のケースでわかりやすく説明します。
ケース (mymodule.py
として保存):
import mymodule mymodule.say_hi() print('Version', mymodule.__version__)
上に示されているのは、単純な module です。ご覧のとおり、私たちが普段使用している Python プログラムと特別な違いはありません。次に、このモジュールを他の Python プログラムで使用する方法を見ていきます。
このモジュールは、このモジュールをインポートしようとしている他のプログラムと同じディレクトリに配置するか、 sys.path
にリストされているディレクトリのいずれかに配置する必要があることに注意してください。
別のモジュール (mymodule_demo.py
として保存):
import mymodule mymodule.say_hi()print('Version', mymodule.__version__)
出力:
$ python mymodule_demo.py Hi, this is mymodule speaking. Version 0.1
仕組み
モジュール内のメンバーにアクセスするために同じドット表記を使用していることに注意してください。 Python はシンボルの再利用に優れており、「Python っぽい」雰囲気を与えているため、同じことを行うために新しい方法を学ぶ必要はありません。
以下は、from...import
構文を使用したテンプレートです (mymodule_demo2.py
として保存):
from mymodule import say_hi, __version__ say_hi() print('Version', __version__)
mymodule_demo2 py
が出力する内容は、mymodule_demo.py
が出力する内容と同じです。
ここで、mymodule にインポートされたモジュールに __version__
という名前がすでに存在する場合、競合が発生することに注意してください。これはおそらく、各モジュールが通常この名前を使用してそれぞれのバージョン番号を宣言しているためです。したがって、プログラムは若干長くなりますが、通常は import
ステートメントを使用することをお勧めします。
また、次のように使用することもできます:
from mymodule import *
これにより、say_hi
などのすべてのパブリック名がインポートされますが、__version__
名はインポートされません。二重アンダースコア。
警告: フォーム import 、つまり `from mymodule import ` の使用は避けるべきであることに注意してください。
Zen of Python
Python の指針の 1 つは、「明確さは不明瞭さよりも優れている」ということです2。 Python で
import this
を実行すると、さらに詳しく学ぶことができます。
dir
関数 組み込み dir()
関数は、オブジェクトによって定義された名前のリストを返すことができます。このオブジェクトがモジュールの場合、リストには関数、クラス、関数内で定義された変数が含まれます。
この関数はパラメータを受け取ります。引数がモジュール名の場合、関数は指定されたモジュールの名前のリストを返します。引数が指定されていない場合、関数は現在のモジュールの名前のリストを返します。
ケース:
$ python >>> import sys # 给出 sys 模块中的属性名称 >>> dir(sys) ['__displayhook__', '__doc__', 'argv', 'builtin_module_names', 'version', 'version_info'] # 此处只展示部分条目 # 给出当前模块的属性名称 >>> dir() ['__builtins__', '__doc__', '__name__', '__package__','sys'] # 创建一个新的变量 'a' >>> a = 5 >>> dir() ['__builtins__', '__doc__', '__name__', '__package__', 'a'] # 删除或移除一个名称 >>> del a >>> dir() ['__builtins__', '__doc__', '__name__', '__package__']
仕組み
最初に表示されるのは、インポートされた sys
の dir
です。モジュール。そこに含まれるプロパティの膨大なリストが表示されます。
次に、パラメータを渡さずに dir
関数を使用します。デフォルトでは、現在のモジュールのプロパティ リストを返します。インポートされたモジュールのリストもこのリストの一部となることに注意してください。
観察 dir
関数の動作を考慮して、新しい変数 a
を定義して値を割り当て、dir## をチェックします。返された結果では、新しい値が同じ名前でリストに表示されていることがわかります。
del ステートメントを通じて変数または属性を削除しました。この変更は、
dir 関数の内容に再び反映されます。
del に関するちょっとしたヒント - このステートメントは、変数または名前を
削除するために使用されます。このステートメントが実行されると、この場合は del a、変数 a
にアクセスできなくなり、変数が存在しなかったかのようになります。
関数は、任意の
オブジェクトに対して動作できることに注意してください。たとえば、dir(str) を実行すると、str
(String, string) クラスのプロパティにアクセスできます。 同時に、これらの値のプロパティを返す
関数もありますが、すべてのクラスで適切に動作しない可能性があります。 。 <p class="comments-section"> 推奨コース: <a href="http://www.php.cn/course/list/30.html" target="_self">Python ビデオ チュートリアル</a></p>
以上が独自の Python モジュールを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。