模塊、包
- 1.模塊導入的方式
- 2.使用as給模塊取一個別名(大駝峰命名法)
- 3.從模塊中導入部分工具
- 4.從模塊中導入全部工具
- 5.模塊搜索順序
- 6__name__
- 7.包
- 8.發布模塊、安裝模塊、卸載包
- 9.pip安裝第三方模塊
本系列博文來自學習《Python基礎視頻教程》筆記整理,視屏教程連接地址:http://yun.itheima.com/course/273.html
模塊:每個以.py 結尾的源代碼文件就是一個模塊。模塊名也是一個標識符,所以需要滿足標識符的命名規則。在模塊中定義的全局變量、函數、類,都是提供給外界直接使用的工具。模塊就好比工具包想要使用這個工具包,就需要先導入這個工具包。
模塊是最高級別的程序組織單元。模塊被導入后,在該模塊文件定義的所有變量名都會以被導入模塊對象成員的形式被調用。也就是說,模塊文件的全局作用域變成了模塊對象的局部作用域。即模塊能夠劃分系統的命名空間,避免了不同文件變量重名的問題。
1.模塊導入的方式
方式1
import 模塊1,模塊2
方式2(官方推薦使用)
import 模塊1
import 模塊2
導入之后使用 模塊名.方法 的方式調用模塊內的工具
2.使用as給模塊取一個別名(大駝峰命名法)
import 模塊名 as 模塊別名
import numpy as np
3.從模塊中導入部分工具
from 模塊名 import 工具名
直接使用工具名調用工具,不需要加**模塊名.**來調用工具
注意事項:兩個不同的模塊中,導入相同名字的函數,后面導入的函數會覆蓋掉前面導入的函數。
可以通過給同名函數中的一個起別名的方式來解決這個問題
#from cyy_01_測試模塊1 import say_hello
from cyy_02_測試模塊2 import say_hello as module2_say_hello
from cyy_01_測試模塊1 import say_hello
say_hello()
module2_say_hello()
輸出
我是模塊1
我是模塊2
將帶入代碼全部寫在文件的頂部,一旦發現沖突能夠及時處理
4.從模塊中導入全部工具
from 模塊名 Import *
便利:不需要模塊名就能夠調用工具
缺點:函數重名現象沒有任何提示,出現問題不好排查
72-76
5.模塊搜索順序
模塊的搜索順序:在當前目錄 搜索 指定模塊名的文件,如果有就直接導入;如果沒有就再搜索系統目錄。
注意: 給一個文件命名時,不要和 系統模塊的文件名 重名,這樣可能會導致程序無法執行
6__name__
每一個文件都應該是可以被導入的,當導入文件時,文件中所有沒有任何縮進的代碼都會被執行一遍。
模塊可以提供全局變量、函數,類。但是,直接執行的代碼不可以向外界提供的工具。
當文件被導入時,會直接執行的代碼實際上不需要執行,這時需要使用__name__這個屬性。\
__name__屬性在本文件執行時,是__mian__的值,但是文件作為模塊執行時,對應的值是模塊名稱。所以可以應用這個特性來編寫文件對的測試代碼,在設計模塊代碼時,可以采用下面的結構測試代碼。
#導入模塊
#定義全局變量
#定義類
#定義函數#編寫測試代碼
def main():#....pass
if __name__=="__main__"main()
80
7.包
包:是一個包含多個模塊(一個文件就是一個模塊)的特殊目錄,這個特殊的目錄 有一個 特殊的文件 :__init__.py
包命名 和 變量的命名方式一樣,用小寫字母+_來命名
優點:使用 import 包名,可以一次性導入 包 中的所有模塊
新建一個包有兩個步驟:
step1:新建一個文件夾,在文件夾中編寫 需要給外界提供的.py文件和__init__.py文件
step2:在__init__.py中填寫內容
具體操作如下:
step1 : 新建一個包,兩種方法:
1.1新建一個Directory,在該目錄下再新建一個__init__.py文件
1.2.直接新建 Python Package,輸入包的名字后,在新建的目錄下會自動包含一個空白的__init__.py文件
step2 : 新建好包目錄,在該目錄下編輯各種模塊,在__init__.py文件中 指定對外界提供的模塊列表
from . import send_massage
from . import receive_massage
.表示從當前目錄下導入摸一個模塊
綜上:當多個模塊有關聯時,就可以整合成一個包
8.發布模塊、安裝模塊、卸載包
如果希望自己開發的文件,分享給其他人,可以制作壓縮包分享給其他人。
step1: 制作壓縮包,setup.py文件
from distutils.core import setup
setup(name=“cyy_massage”,
version=“1.0”,
description=“itheima’s 發送和接受消息”,
long_description=“完整的發送和接收消息的模塊”,
author=“itheima”,
author_email=“xxxxxxx@163.com”,
url=“www.xxx.com”,)
setup.py文件格式固定,不能在pycharm 中執行,只能在終端中執行。并且希望在什么環境下運行,就使用相應版本的python解釋器。
step2: 構建,模塊
python3 setup.py build
step3: 生成發布壓縮包
python3 setup.py sdist
生成一個.tar.gz 的文件,可以分享給別人
其他人如果拿到了這個.tar.gz這個文件夾之后,可以安裝這個模塊:先解壓縮這個文件,使用usdo 執行setup.py 安裝文件
tar zxvf cyy_massage-1.0.tar.gz
PKG-INFO文件中保存著包的基本信息,可以通過下面命令查看基本信息
cat PKG-INFO
sudo python setup.py install
卸載模塊:直接從安裝目錄底下刪除就可以了
導入模塊->模塊名.__file__查看模塊的完整路徑切換到對應的文件下刪掉那個文件就可以了
rm -r XXX
9.pip安裝第三方模塊
第三方模塊:知名團隊 開發出來,并且 被廣大程序員 廣泛使用 的Python包/模塊。
pygame:一套非常成熟的游戲開發模塊
pip是一個現代的的、通用的python包管理工具。提供了Python包的下載、安裝、查找、卸載等功能。
安裝命令:
sudo pip install 模塊名
卸載命令;
sudo pip uninstall 模塊名
將模塊安裝到Python 3.x 下要使用pip3
sudo pip3 install 模塊名
sudo pip3 uninstall 模塊名
python 下安裝ipython
sudo apt install ipython