Python TIL(パッケージ、モジュール)


モジュール


  • モジュールは、さまざまな変数、関数、クラスを含むファイルです.

  • モジュールを別のPythonプログラムから読み込んで使用するPythonファイル.

  • パッケージには複数のモジュールが含まれています(特殊な機能が必要な場合は、パッケージを読み込むだけです)

  • Pythonをインストールする場合、デフォルトでは複数のモジュールとパッケージがインストールされます

  • 基本モジュールとパッケージが欠けている場合は、他人が作成した有名なモジュールとパッケージを使用することを避けることができます.

  • Pythonを学習すると、モジュール、パッケージ、Python標準ライブラリなどの用語に触れます.概念は似ていますが、少し違います.
  • モジュール:pyファイル単位で作成された
  • パッケージ:特定の機能に関連する複数のモジュールを含む.パッケージはモジュールにネーミングスペース
  • を提供する
  • Python標準ライブラリ:Pythonに基本的にインストールされているモジュール、パッケージ、および組み込み関数を組み合わせてPython標準ライブラリ
  • と呼ぶ.

    importモジュールのインポート

    import module
    import modul1, module2
    
    
    import math
    
    math.pi # 3.141592......
    
    math.sqrt(4.0) # 2.0
    
    math.sqrt(2.0) # 1.14121.....
    

    asモジュールのインポート

  • モジュールの名前別名を付けることができます.
  • import math as m
    
    m.pi # 3.141592....
    

    importからモジュールの一部のみインポート


  • fromモジュール名import変数または関数またはクラス
    from math import pi # math모듈에 있는 pi만 가져다 쓰겠다!
     from math import sqrt # math모듈에 있는 sqrt만 가져다 쓰겠다.
    
    pi # 3.141592
    
    sqrt(4.0) # 2.0
    
  • importからすべてのモジュールをインポート

    
    from math import *
    
    pi #3.141592.....
    
    sqrt(4.0) # 2.0
    

    パッケージをimportにインポート

  • パッケージとモジュールは混同される可能性があります.パッケージはフォルダとみなすことができますが、モジュールはです.pyファイルだと思えば分かりやすいです.フォルダ(パッケージ)には様々なモジュール(.py)が含まれていると考えられます.
  • import 패키지.모듈
    
    import 패키지.모듈1 , 패키지.모듈2
    
    import 패키지.모듈.변수
    
    import 패키지.모듈.함수()
    
    import 패지키.모듈.클래스()
    
    
    import urllib.request as r # urllib 패키지의 request 모듈을 가져오면서 이름을 r로 지정
    
    # from urllib import request as r 바로 위에서 선언한거랑 똑같은 문법
    
    response = r.urlopen("http://www.google.com") # r로 urlopen 함수 사용
    
    response.status # 200
    

    モジュールとパッケージの作成


    例1
    # test.py
    
    base = 2
    
    def square(n):
      return base**n # 제곱해주는 함수
    
    
    # test2.py
    
    import test
    
    print(test.base) # 2
    print(test.square(2) # 4
    
    例2
    # person.py
    
    class Person:
    
    class Person:
      def __init__(self, name, age, address):
        self.name = name
        self.age = age
        self.address = address
      
      def greeting(self):
        print("안녕하세요 저는 {}입니다.".format(self.name))
        
    
    # main.py
    
    
    import person
    # from person import Person as p
    # from person import Person
    
    
    p1 = person.Person("김현진", 20, "인천")
    p1.greeting()
    
    例3
    フォルダ構造
    # main.py
    
    from calcpkg import operation
    
    add = operation.add(1,2)
    
    print(add) # 3
    
    # calcpkg/operation.py
    
    def add(a, b):
      return a + b
    
    def mul(a, b):
      return a * b
    

    __init__.py用途

    __init__.pyファイルは、このディレクトリがパッケージの一部であることを通知する役割を果たす.__init__.pyファイルがなければ、パッケージとはみなされません.