標籤:冗餘 程式 推薦 檔案的 匯入 就是 解釋 代碼冗餘 nbsp
模組
1 什麼是模組
模組就是一系列功能的集合體
模組有三種來源
1. 內建的模組
2. 第三方的模組
3. 自訂模組
模組的格式:
1 使用python編寫的.py檔案
2 已被編譯為共用庫或DLL的C或C++擴充
3 把一系列模組組織到一起的檔案夾(註:檔案夾下有一個__init__.py檔案,該檔案夾稱之為包)
4 使用C編寫並連結到python解譯器的內建模組
2 為何要用模組
1. 使用內建的或者第三方模組的好處是: 拿來主義,可以極大提升開發效率
2. 使用自訂模組的好處是: 可以減少代碼冗餘(抽取我們自己程式中要公用的一些功能定義成模組,然後程式的各部分組件都去模組中調用共用的功能)
3 如何用模組
大前提: 一定要區分開誰是執行檔案,誰是被匯入模組
import
x=1
# 檔案名稱是spam.py,模組名則是spam
# 首次匯入模組發生?件事
# 1. 會產生一個模組的名稱空間
# 2. 執行檔案spam.py,將執行過程中產生的名字都放到模組的名稱空間中
# 3. 在當前執行檔案的名稱空間中拿到一個模組名,該名字指向模組的名稱空間
# import spam
# 之後的匯入,都是直接引用第一次匯入的成果,不會重新執行檔案
# import spam
# import spam
# import spam
# import spam
# 在執行檔案中訪問模組名稱空間中名字的文法:模組名.名字
# import spam
# print(spam.x) # 指名道姓地跟spam要名字x,肯定不會與當前執行檔案中的名字衝突
# x # 向當前執行檔案的名稱空間要名字
# money=11111111111111111111111
# print(spam.money)
# print(spam.read1)
# print(spam.read2)
# print(spam.change)
# spam.read1()
# def read1():
# print(‘run.py --> read1‘)
# spam.read2()
# spam.change()
# print(spam.money)
# print(money)
# 總結import匯入模組:在使用時必須加上首碼:模組名.
# 優點: 指名道姓地向某一個名稱空間要名字,肯定不會與當前名稱空間中的名字衝突
# 缺點: 但凡應用模組中的名字都需要加首碼,不夠簡潔
# 一行匯入多個模組(不推薦)
# import spam,os,time
# 可以為模組起別名(注意:模組名應該全為小寫)
import spam as sm
print(sm.money)
print(sm.read1)
from .....import.....
# money=200
# 首次匯入模組發生3件事
# 1. 建立一個模組的名稱空間
# 2. 執行檔案spam.py,將執行過程中產生的名字都放到模組的名稱空間中
# 3. 在當前執行檔案中直接拿到一個名字,該名字就是執行模組中相對應的名字的
# from spam import money,read1,read2,change
# money=200
# print(money)
# read1=123
# read1()
# read2()
# change()
# print(money)
# 總結from...import...
# 優點: 使用時,無需再加首碼,更簡潔
# 缺點: 容易與當前名稱空間中的名字衝突
# *代表從被匯入模組中拿到所有名字(不推薦使用)
# from spam import money,read1,read2,change
# from spam import * # __all__ = [‘money‘,‘read1‘]
#
# print(money)
# print(read1)
# print(read2)
# print(change)
# 起別名
from spam import read1 as r1
r1()
Python入門學習-DAY15-模組