模块的四种形式 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包...
目錄
- 模塊的四種形式
- 什么是模塊
- 模塊的四種形式
- 自定義模塊
- 第三方模塊
- 內置模塊
- 包
- 使用模塊的好處
- 模塊的調用
- 循環導入問題
- 模塊的搜索路徑
- py文件的兩種用途
- 編譯python文件
- 包
- 什么是包
- 我的理解
模塊的四種形式
什么是模塊
模塊就是一些列功能的集合體,就是一堆函數放在一個.py文件中,模塊的名字是根據文件名字取的,和文件的名字是一樣的
模塊的四種形式
自定義模塊
和字面意思一樣,就是自己定義的模塊,也就是自己寫的一個py文件,在文件里面寫很多的函數
第三方模塊
已被編譯為共享庫或者DLL的c或c++擴展
內置模塊
使用c編寫并鏈接到python解釋器的內置模塊
包
把一些列模塊組織到一起,就給“包”起來
使用模塊的好處
可以提升開發效率
然后就是分工明確,可以很清楚的去寫代碼,以及理解代碼
模塊的調用
import
from...import
相同點:
不同點
循環導入問題
就是在調用的時候會出現另一個py文件中也會執行調用我們在用的文件,就會出現報錯的情況。
然后就是我在學習這個過程中以為導包一直執行
其實導包只會執行一次
所以不會像我想的一樣一直會循環導著沒完
還有就是解決循環導入問題的方法就是避免循環導入
模塊的搜索路徑
導入模塊時查找模塊的順序是:
py文件的兩種用途
python文件總共有兩種用途,一種是執行文件;另一種是被當作模塊導入。
編寫好的的一個python文件可以有兩種用途:
? 1.腳本,一個文件就是整個程序,用來被執行(也就是在文件里面有執行包內函數的語句,直接import調用文件就可以直接執行 文件中的執行語句,在調用文件的地方打印)
? 2.模塊,文件中存放著一堆功能,用來被導入使用(也就是在文件中存放著很多個寫好的函數,但是 沒有執行語句,可以使用 from 文件名 import 某個函數名調用模塊中的需要使用的一個功能)
還有就是一個將調用的運行變為自己小秘密的時候的操作
如果直接運行run.py會直接運行aaa.py中的f1()和f2(),但是如果我們在aaa.py中加上if __name__ == '__main__':這句話,則可以防止運行run.py時執行f1()和f2()。因為當aaa.py被直接執行,即當做執行文件的時候__name__ == '__main__'; 在aaa.py被當做模塊直接運行的時候__name__ == 'aaa'。由此可以讓aaa.py在不同的場景下有著不同的用法。
# aaa.pyx = 1def f1():print('from f1')def f2():print('from f2')if __name__ == '__main__':f1()f2()直觀理解:
對于當前運行的程序test.py而言,name 變量的值是"main"。
如果run.py調用了test.py,即import test,那么對test.py而言__name__變量的值是"test",對于run.py而言__name__變量的值是"main"。
背后原因:
有時我們寫了可以直接被執行的模塊(.py文件),但是在另一個程序中調用它時,我們其實只是想用一用里面寫好的函數,而不是全都執行一遍。那么我們就可以把執行的部分放到if name == 'main' 中進行判斷。
如果if name == 'main' 為真,就說明我們是在直接執行這個模塊,那么所有的操作都要運行一遍;但如果為假,就說明我們是引用了這個模塊,只有在需要用到它的函數時,才會被調用執行。
編譯python文件
(了解)
https://www.cnblogs.com/nickchen121/p/10802465.html
包
什么是包
包是模塊的一種形式,包的本質就是一個含有.py的文件的文件夾
我的理解
其實包就是給我們所編寫的模塊的一個整合,里面是可以包括py文件以及其他的包,還有就是在包里面有一個__init__.py文件,就相當于給包下面的文件一個目錄的形式讓包外面的文件可以直接調用包名,達到調用包里面的模塊的作用,還有就是我發現如果init文件中有一個沒有導入進來,包外文件在調用的時候如果采用 from 包名 import 模塊名的方法調用的話,會執行以一遍init中的調用,如果說init導入的模塊中含有類似于print的打印的東西,就會導致終端上不僅會打印你調用文件的內容,還會打印init所調用的內容,還有就是再init中寫下調用包內模塊的語句,調用會更加方便。(個人理解,還沒有去系統學習,只是自己看了之后,總結一下的)
轉載于:https://www.cnblogs.com/xiongchao0823/p/11360525.html
總結
以上是生活随笔為你收集整理的模块的四种形式 模块的调用 循环导入问题 模块的搜索路径 py文件的两种用途 编译python文件 包...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 7 部署 Android
- 下一篇: [Spring cloud 一步步实现广