python import 自己的包


在寫python時,有時候寫的一個python文件可能需要被其他python文件所用,那么可以用導入包 import 的 方式:

 

1.自己寫的包放到哪里?

>>> import sys
>>> sys.path
['', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']

 可以看到上面列舉了一些文件夾地址,那么自己寫的包理論上都可以放到上述地址中,但有一些如”/usr/lib64/python3.4“並不推薦,比較推薦的是:“” , “'/usr/lib/python3.4/site-packages'”, “'/usr/lib64/python3.4/site-packages'”

 

2.如何導入自己寫的包?

比如“/usr/lib/python3.4/site-packages”,如果我寫了 一個 exp.py 文件放在這個文件下,那么我在自己的系統寫的 python3 文件都可以采用 import exp 導入。

  還可以看到還有一個是“”,及當前文件夾,假如 存在如此的 一個 文件 結構:

parent/
        one/
         __init__.py exp.py exp2.py exp3.py

  exp.py和exp2.py都在one目錄下,那么在exp2.py中可以通過 import exp 導入exp.py

  而exp3.py和one都處在parent目錄下,那么在exp3.py中可以通過 import one.exp 導入exp.py

 

3.__init__.py的作用

  偶爾可以看到有些人寫的包下面還會有一個__init__.py,它的作用是在導入包時首先執行的。

  假設在 exp3.py 中寫入 import one.exp ,那么會首先執行 __init__.py 文件,接着會執行exp.py文件

  如果不需要,__init__.py可以為空,也可以干脆不加入__init__.py

 

4.if __name__ == "__main__"

  也有時候會看到 .if __name__ == "__main__" 語句,它的作用就是當此文件沒有被作為導入的文件使用時執行 if 語句塊里的程序。

  假如 exp.py 中加入了 if __name__ == "__main__" ,然后 python3 exp.py,就會執行這個語句塊里的內容

  而 如果 if __name__ == "exp",時則是被 其他文件 以 "import exp"導入時執行的部分

  有如果是 if __name__ == "one.exp",時則是被 其他文件 以 "import one.exp"導入時執行的部分

  注意 在  "import exp"時是不會執行 if __name__ == "one.exp"中的內容的!同樣: "import one.exp“是不會執行 if __name__ == "exp"中的內容的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM