Python モジュールとパッケージ: sys モジュール、os モジュール、および変数関数の使用

モジュール

モジュール化とは、完全なプログラムを小さなモジュールに分解し、モジュールを組み合わせて完全なプログラムを構築することを指します。モジュール性には、開発、メンテナンス、再利用が便利という利点があります。Python では、各 py ファイルはモジュールです。

外部モジュールをインポートする

外部モジュールをモジュールに導入するには、import 模块名と の2 つの方法がありますimport 模块名 as 模块别名後者では、同じモジュールを複数回導入できますが、作成されるインスタンスは 1 つだけです。import ステートメントはプログラム内のどこでも呼び出すことができますが、通常はプログラムの先頭に記述する必要があります。__name__各モジュール内には、モジュールの名前を取得できる属性があります。__name____main__が付いているモジュールはメイン モジュールであり、Python を通じて直接実行するモジュールです。

内容を一部ご紹介

モジュール内のコンテンツの一部のみをインポートすることもできます。構文は次のとおりですfrom 模块名 import 变量,变量....次の構文でインポートされた変数のエイリアスを使用できますfrom 模块名 import 变量 as 别名

パッケージ

パッケージは、複数のモジュールで構成されるフォルダーです。モジュールのコードが多すぎる場合、またはモジュールを複数のモジュールに分割する必要がある場合は、パッケージを使用する必要があります。パッケージにはファイルが必要であり__init__.py、このファイルにはパッケージのメインコンテンツを含めることができます。

サンプルコード

以下にサンプルコードを示します。

# 引入test_module模块,并指定别名test
import test_module as test

# 访问模块中的变量
print(test.a, test.b)

# 创建Person的实例p
p = test.Person()
print(p.name)

# 只引入模块中的特定部分
from m import Person,test

# 引入到模块中所有内容,不推荐使用
from m import *

# 为引入的变量使用别名
from m import test2 as new_test2

# 引入包hello中的模块
from hello import a,b

print(a.c)
print(b.d)

注:__pycache__これはモジュールのキャッシュ ファイルであり、プログラムのパフォーマンスを向上させるために使用できます。

# 模块缓存文件
__pycache__ 是模块的缓存文件。在Python中,代码在执行前需要被解析器转换为机器码,然后再执行。为了提高程序的运行性能,Python会在第一次编译后将代码保存到一个缓存文件中。下次加载该模块时,就可以直接加载缓存中编译好的代码,而不需要重新编译。

例子:
# 引入math模块
import math

# 调用math模块中的函数
print(math.sqrt(16))

# 输出结果:4.0

注意:在实际编写代码时,应该根据实际情况选择引入模块的方式,避免引入不必要的内容,以减少内存占用和提高代码的可读性。

上記はモジュールとパッケージに関連しています。モジュール性を使用すると、コードがより明確になり、保守が容易になり、再利用可能になります。同時に、パッケージを使用すると、大きなプログラムを小さなモジュールに分解できるため、コードの管理と編成が容易になります。モジュールとパッケージを作成するときは、命名規則に注意し、モジュールを導入する合理的な方法を選択してください。

モジュールがインポートされると、Python はモジュール内のすべてのトップレベル コード (つまり、関数、クラス、または条件文に含まれていないコード) を実行します。これは通常、モジュール内の変数の初期化、関数やクラスの定義などの操作に使用されます。

サンプルコード:

# module.py
print("This is a module.")

def greet(name):
    print(f"Hello, {
      
      name}!")

class Person:
    def __init__(self, name):
        self.name = name

# main.py
import module

print("This is the main module.")

module.greet("Alice")

p = module.Person("Bob")
print(p.name)

出力を実行しますmain.py

This is a module.
This is the main module.
Hello, Alice!
Bob

ご覧のとおり、モジュールmain.pyがインポートされるとmodule、最初に の最上位コードが実行されmodule.py、その後、main.pyのコードが継続されます。

さらに、if __name__ == "__main__":現在のモジュールが直接実行されるかどうかを判断するために使用できます。これにより、モジュールを独立したプログラムとして実行したり、他のモジュールによってインポートして使用したりすることができます。

サンプルコード:

# module.py
def square(x):
    return x * x

if __name__ == "__main__":
    # 当前模块被直接执行
    # 执行一些测试代码
    print(square(5))
    print(square(10))

関数は個別に実行することmodule.pyも、インポートして他のモジュールで使用することもできますsquareスタンドアロン プログラムとして実行するとテスト コードが実行されますが、モジュールとしてインポートした場合はテスト コードは実行されません。

OK、この記事を必要に応じて整理し、Markdown 形式に整形します。ちょっと待って下さい。

箱から出してすぐに使えます

すぐに使えるというアイデアを実現するために、Python はモジュールの標準ライブラリを提供します。この標準ライブラリには、直接使用できる非常に強力なモジュールが多数含まれており、標準ライブラリは Python のインストールと一緒にインストールされます。

システムモジュール

sys モジュールは、Python パーサーに関する情報を取得したり、関数を通じて Python パーサーを操作したりできるようにするいくつかの変数と関数を提供します。sys モジュールを導入できます。

import sys

sys.argv

sys.argv は、コードの実行時にコマンド ラインに含まれるパラメーターを取得するために使用されます。このプロパティは、現在のコマンドのすべてのパラメータを保存するリストです。例えば:

print(sys.argv)

システムモジュール

sys.modules は、現在のプログラムに導入されているすべてのモジュールを取得するために使用されます。modules は辞書であり、辞書のキーはモジュールの名前であり、辞書の値はモジュール オブジェクトです。pprint モジュールを使用してフォーマットして出力できます。例えば:

import pprint
pprint.pprint(sys.modules)

システムパス

sys.path は、モジュールの検索パスを格納するリストです。例えば:

pprint.pprint(sys.path)

システムプラットフォーム

sys.platform は、Python が現在実行されているプラ​​ットフォームを表します。例えば:

print(sys.platform)

sys.exit()

sys.exit()函数用于退出程序。可以在括号中添加字符串作为退出时的提示信息。例如:

sys.exit('程序出现异常,结束!')
print('hello')

os模块

os模块让我们可以对操作系统进行访问。我们可以引入os模块:

import os

os.environ

通过os.environ属性可以获取到系统的环境变量。例如:

pprint.pprint(os.environ['path'])

os.system()

os.system()函数可以用来执行操作系统的命令。例如,可以执行dir命令查看当前目录的文件列表:

os.system('dir')

os模块中的变量、函数和类

我们可以在模块中定义变量、函数和类,并在其他地方使用。例如:

a = 10
b = 20

_c = 30  # 添加了_的变量,只能在模块内部访问

def test():
    print('test')

def test2():
    print('test2')

class Person:
    def __init__(self):
        self.name = '孙悟空'

测试代码

我们可以编写一些测试代码来验证模块的功能。这部分代码只有当当前文件作为主模块时才会执行,而当模块被其他模块引入时不会执行。我们可以通过__name__属性来检查当前模块是否是主模块。

if __name__ == '__main__':
    test()
    test2()
    p = Person()
    print(p.name)

模块中的变量和函数的使用

在模块中定义的变量和函数可以在其他地方进行使用。例如,假设我们将上述代码保存为一个名为example.py的模块文件:

# example.py

a = 10
b = 20

_c = 30

def test():
    print('test')

def test2():
    print('test2')

class Person:
    def __init__(self):
        self.name = '孙悟空'

然后,在另一个Python脚本中,我们可以引入该模块并使用其中定义的变量和函数:

# main.py

import example

print(example.a)
print(example.b)

example.test()
example.test2()

p = example.Person()
print(p.name)

运行main.py,将会输出以下结果:

10
20
test
test2
孙悟空

这样,我们就可以在模块中封装一些常用的代码,并在其他地方进行复用。

总结:

  • 使用sys模块可以获取到Python解析器的信息和操作Python解析器。
  • 使用os模块可以对操作系统进行访问,包括获取系统环境变量和执行系统命令。
  • 在模块中定义的变量、函数和类可以在其他地方进行使用。
  • 可以通过if __name__ == '__main__':来编写测试代码,只有当模块作为主模块运行时才会执行。

python精品专栏推荐


python基础知识(0基础入门)

【Python基礎知識】 0.print()関数
【Python基礎知識】 1.データ型、データ応用、データ変換
【Python基礎知識】 2.if条件判定と条件ネスト
【Python基礎知識】 3.input()関数
【Pythonの基礎知識】 4. リストと辞書
【Pythonの基礎知識】 5. Forループとwhileループ
【Pythonの基礎知識】 6. ブール値と4種類のステートメント(break、Continue、pass、else)
【Pythonの基礎知識】 7. 実践操作 ~Pythonを使って「Word PK」ゲームを実装してみる(1)
【Pythonの基礎】 7. 実践操作 ~Pythonを使って「Word PK」ゲームを実装してみる(2)
【Pythonの基礎】 8. プログラミング的思考:問題の解決方法 思考編
【Pythonの基礎知識】 9. 関数の定義と呼び出し
【Pythonの基礎知識】 10. 関数を使ったプログラムの書き方 実践編
【Pythonの基礎知識】 10. Pythonの使い方じゃんけんゲームを実装する - 関数の実践操作編
【Pythonの基礎】 11. デバッグ方法 - よくあるエラー原因とトラブルシューティングの考え方 - 考え方の章
【Pythonの基礎】 12. クラスとオブジェクト(1)
【Pythonの基礎】 12 . クラスとオブジェクト (2)
【Pythonの基礎知識】 13. クラスとオブジェクト (3)
【Pythonの基礎知識】 13. クラスとオブジェクト (4)
【Pythonの基礎知識】 14. ライブラリ管理システムの構築(実践)クラスやオブジェクトの操作)
【Pythonの基礎知識】 15. コーディングの基礎知識
【Pythonの基礎知識】 16. ファイルの読み書きと操作の基礎
【Pythonの基礎知識】 16. 「古詩書き取り問題」のPython実装(ファイルの読み書きとコーディング~実践操作)
【Pythonの基礎知識】 17. モジュールの概念と導入方法
【Python基礎】 18. 実践的な運用~Pythonを使って大量メール自動送信~
【Python基礎】 19. プロダクトの考え方とフローチャートの使い方~考え方
【Python基礎】 20. Pythonの実装「お昼何を食べるか」の(プロダクト思考~実践運用編)
【Pythonの基礎知識】 21. 効率よくダラダラ開く正しい開き方~卒業
【Python ファイル処理】 CSV ファイルの読み込み・加工・書き込み
【Python ファイル処理】 】Excel自動処理(openpyxlを使用)
【Pythonファイル処理】 - Excel形式処理


Python クローラーの知識

【python クローラー】 1. クローラーの基礎知識
【python クローラー】 2. Web ページの基礎知識
【python クローラー】 3. クローラー初体験(BeautifulSoup 解析)
【python クローラー】 4. クローラーの実践操作(ディッシュクローリング)
【pythonクローラー】 5 .クローラーの実践操作(歌詞のクローリング)
【Python クローラー】 6. クローラーの実践操作(パラメーター付きデータのリクエスト)
【Python クローラー】 7. クロールされたデータはどこに保存されるの?
[Python クローラー] 8. 過去を振り返り、新しいことを学ぶ
[Python クローラー] 9. Cookie (クッキー) でログインする
[Python クローラー] 10. ブラウザーに自動で動作するよう指示する (Selenium)
[Python クローラー] 11. クローラーに任せる時間通りに報告する
[Python クローラー] 12. クローラー軍団を構築する
[Python クローラー] 13. 太らない食事とは (クローラー実習)
[Python クローラー] 14. Scrapy フレームワークの説明
[Python クローラー] 15. Scrapy フレームワークの実践(人気のジョブクローリング Take)
【Python クローラー】 16. クローラーの知識ポイントのまとめと復習

Supongo que te gusta

Origin blog.csdn.net/qq_41308872/article/details/132856258
Recomendado
Clasificación