模塊:
模塊就是一個python文件。
模塊就是一個python文件。
功能:
1.可以提高文件的重復利用率。提高開發效率
2.用于劃分程序結構。
自定義模塊:
模塊就是一個python文件而已,所有python代碼都可以放入模塊,實際開發中,模塊放入的內容都是
重復利用率高的內容主要包含:
1.為當前模塊專門定義的變量【其他語言一般都是常量】
2.函數。
3.類
4.測試代碼
注意:模塊的命名不要和內置模塊重名!
測試代碼統一放到判斷當中
if __name__ == '__main__':
只在當前文件測試代碼,當前文件的屬性,功能不能被其他文件調用
模塊的導入:
1.import 模塊名
直接導入整個模塊
2.import 模塊名 as 別名
使用別名導入模塊,適用于模塊名稱較長的模塊
3.from 模塊名 import 某個內容
導入模塊中的指定內容。
注意:該方式是將模塊中的內容直接導入當前腳本當中,訪問不需要模塊名稱
4.from 模塊名 import 內容1,內容2,內容3....
導入模塊中的指定的多個內容。
注意:該方式是將模塊中的內容直接導入當前腳本當中,訪問不需要模塊名稱
?
5.from 模塊名 import *
導入模塊中的所有內容
注意:該方式是將模塊中的內容直接導入當前腳本當中,訪問不需要模塊名稱
受保護的內容不能使用這種方式進行訪問
警告:
使用from ... import 語法必須確定 模塊中的內容不會和當前腳本中的內容重名。
模塊的搜索路徑:
import module1
name = “王大錘”
print(module1.name)
導入模塊的時候程序查找指定模塊的文件夾的路徑的集合。
import sys
print(sys.path)
常用搜索路徑(windows)
1.當前導入模塊的文件所在的文件夾
僅僅是一個普通的程序文件,為當前文件夾下的文件使用的模塊
2.(python安裝目錄中的Lib文件夾)C:\Users\xdl\AppData\Local\Programs\Python\Python37\Lib
表示為python擴展功能,適用于所有使用當前環境的程序
3.(真實和虛擬環境要區分好)第三方模塊的目錄\Lib\sitepackages(C:\Users\xdl\AppData\Local\Programs\Python\Python37\Lib\site-packages)
也是為python擴展功能,相當于用戶為自己環境擴展的而不是為整個python擴展的
自己添加搜索路徑:
import sys
sys.path.append(‘路徑’)
包:
文件夾。所以包就是一個普通的文件夾在python中的稱呼。
作用:
1.主要用于組織模塊。
2.可以當作模塊使用。
包的結構:
包(文件夾)
|----
init
.py 包的標志文件(可以有內容,也可以是空的!)
|---- 模塊1(文件)
|---- 模塊2(文件)
|---- …
|---- 子包(文件夾中的文件夾)
|----- |----
init
.py 包的標志文件(可以有內容,也可以是空的!)
|----- |---- 模塊3
|----- |---- 模塊4
|----- |---- …
包的導入方式:
import語法導入
1.import 包名
導入包本身,但是不一定能夠導入內容.
-
import 包名.模塊名
導入包中的指定模塊。 -
import 包名.子包名
導入子包本身,但是不一定能夠導入內容.
4.import 包名.子包名.模塊
導入包中子包中的模塊
以上四個語法均可以使用as語法設置別名
from import 語法導入
1.from 包 import 模塊
從包中導入一個模塊
2.from 包 import 模塊1,模塊2…
從包中導入者多個模塊
3.from 包 import 子包
從包中導入子包,無法使用模塊中的信息
4.from 包.子包 import 模塊
導入包中子包中的模塊
5.from 包名.子包.模塊 import 內容
導入包中子包中模塊的一個或者多個內容
all
特殊變量:(少用)
1.包是文件夾一般不能夠存儲信息。
2.
init
.py文件除了當做包的標志之外,還可以為包本身存儲信息,使得包具有模塊的內容
3.在__init__.py文件中,如果設置了__all__變量,并且使用from 包 import * 語法導入包本身
init
.py中除了__all__的設置之外,其余設置均會失效
4.__all__變量的作用在使用from 包 import *的導入方式之下,可以設定當前包導入時所使用的模塊
all
= [‘模塊名’,‘模塊名’,‘模塊名’,…]
相對導入與絕對導入方式:
絕對導入:
import 包
import 模塊
import 包.子模塊
from 包 import 模塊
from 模塊 import 內容
查找方式:絕對導入方式會使用【搜索路徑】查找指定的包或者模塊的所在
相對導入:
import 語法無法使用 !
from .包名/模塊名 import 內容
from …包名/模塊名 import 內容
查找方式:在當前文件夾中搜索查找指定的包或者模塊
# 相對路徑導入時,不可以直接運行當前文件,因為python會把當前文件作為最頂層文件直接運行,如果要使用的話,就要在別的文件里使用絕對路徑方式導入此文件,才可以運行。
# 單入口設計模式就是由此而來。
# 單入口設計模式的優點:安全,隱私性較高。缺點:代碼調試不好做。
注意:from后面可以使用. import 后面允許使用,
例子:
from . import pkg 相對于當前路徑引入模塊
from .模塊名 import 屬性名 相對于當前模塊引入具體屬性
from … import 模塊名 相對于上一級引入模塊
from …包名 import 模塊名 相對于上一級的某個包引入模塊
from …包名.模塊名 import 屬性名 相對于上一級某個包下的某個模塊引入某屬性
. 當前路徑
… 上一級路徑
… 上一級的上一級
… 上一級的上一級的上一級
… (這里的點是無限的)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
