pythonパッケージ_all__

1669 ワード

  • モジュール:.pyファイル
  • パッケージ:1つのフォルダの下に複数あります.pyファイル、そして_init__.pyファイル
  • importパケットインポートパケットの場合_init__.pyが実行される場合_init__.pyが空の場合、モジュールは使用できません.モジュールも
  • にインポートした場合
  • では、将来、パッケージ内のモジュールを呼び出すことができます.
  • の下にsendmsgがある.pyとrecive.pyモジュールおよび_init__.pyはTestmsgフォルダの下に存在します.

  • main.pyはsendmsgを採用する.test1()
  • main.pyのfrom TestMsg import*と_init__の_all__モジュールをインポートします.
  • 例えば_all__にsendmsgモジュールのみが導入され、最後にsendmsgモジュールのみが導入される
  • #receive.py
    
    def test2():
        print("-----recvmsg-test2---")
    #sendmsg.py
    
    def test1():
        print("----sendmsg-test1-----")
    #__init__.py
    
    __all__ = ["sendmsg"]
    #main.py
    
     '''  Testmsg    ,Testmsg  sendmsg.py、recive.py    __init__.py
                   __init__.py,    __init__.py            '''
    from TestMsg import *
    
    sendmsg.test1()#    sendmsg.py  test1  

    main.pyはTestmsgを採用する.sendmsg.test1()
  • main.pyでは直接import TestMsgなので_init__必要なモジュール
  • をインポートする.
  • from TestMsg import*この文はこの時に__に置きますinit__.pyの中、main.py import TestMsgを実行するとまず実行されます_init__.pyなのでsendmsgはTestmsgというパッケージに導入されます(一応そう思います)、呼び出すときにパッケージの名前
  • を付けます
    #__init__.py
    
    __all__ = ["sendmsg"]
    
    from TestMsg import * #  TestMsg       , __all__    sendmsg       sendmsg  
    
    #from . import recvmsg #        recvmsg   
    #main.py
    
     '''  Testmsg    ,Testmsg  sendmsg.py、recive.py    __init__.py
                   __init__.py,    __init__.py            '''
    import Testmsg
    
    Testmsg.sendmsg.test1()#    sendmsg.py  test1