補充:生成器表示式
將列表生成器的中括號改為小括號就是生成器表示式
res = [i for i in range(10) if i > 5] # 列表生成式
res = (i for i in range(10) if i >5) # 生成器表示式
模組什麼是模組
模組就是一系列功能的集合體(對函式集的封裝)
內建模組
第三方模組
自定義模組
為何要用模組
使用內建或者第三方的模組的好處是:拿來主義,極大提公升開發效率
使用自定義的模組的好處是:將程式的各部分元件共用的功能提取出來放到乙個模組中,其他的元件通過匯入的方式使用該模組,該模組即自定義模組,好處是可以減少**冗餘。
如何使用模組
匯入模組的三種方式:
import + 模組
首次倒入模組的會發生三件事:
會產生乙個模組命名空間
會執行模組檔案的內容,將產生的名字丟到模的命名空間裡
在當前執行的檔案中拿到乙個名字(模組名),該名字指向模組的命名空間模組的內功能的呼叫
module.func()
缺點:當模組名複雜(stu_ifo_msg)時,會大大降低開發效率。
from + 模組 + import + 函式名,函式名,函式名……
首次匯入模組會發生3件事
會產生乙個模組命名空間
會執行模組檔案內容,見檔案中產生的名字丟入到模組的命名空間中
在當前執行檔案中拿到的函式名,該名字指向模組的命名空間中的函式
功能函式的呼叫
func()
缺點:當執行函式中有相同函式名時,會造成命名空間混淆
import + 模組 + as + 新名字 (推薦)
匯入原理與第一種方式相同,不論模組名多長,模組內功能多少都能以最精簡的方式寫出清晰的**(完美解決以上其他兩種匯入方式帶來的缺陷)。
模組的查詢路徑(優先順序從上到下)
記憶體內建模組
sys.path(是以執行檔案為準)
如何區分python檔案的兩種用途
print(__ name __)
當檔案被當做執行檔案匯入時__ name__ 的值為__ main__
當檔案被當做模組被匯入時__ name__的值為模組名
#在模組內新增測試該模組的功能**,但在執行檔案中不能讓其顯示出來
deffunc1():pass
deffunc2():pass
deffunc3():pass
if __name__ == '__main__': #當檔案被當作模組匯入時,__name__='模組名'
print('執行測試功能')
軟體開發的目錄規範
atmbin
start.py:啟動檔案
conf(配置檔案,允許使用者自定義)
settings.py
core(核心功能)
db:存放資料、賬號資訊等
src.py : 主程式,核心**
lib(自定義模組)
common.py
log(日誌檔案)
readme.txt(軟體介紹)
transcation.tlo(使用者日誌和交易資訊等)
start.py執行src.py中的功能,首先去bin中找,找不到,報錯
①在sys.path中新增環境變數,但由於環境變數只針對於當前電腦,所以當程式在其他機器上使用時則無法執行,且只能執行src.py的功能,其他檔案則無法執行。
② 一、將專案的根目錄加到環境變數裡
二、把專案根目錄所在的局的對路徑拿到,然後加到環境變數裡
解決了只能執行src的缺陷,但是在另一台機器上任然不能使用。
③使用__ file __ 內建函式,print( __ file __ )得到的是當前執行檔案的路徑(d:/……/atm/bin/start.py),將此路徑處理後根目錄新增到環境變數中。
#os.path.dirname:獲取上一層資料夾,os.path.abspath(__file__)得到的是當前執行檔案的路徑
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #最終我們需要的當前執行檔案的根目錄
為軟體的提現功能新增日誌功能並可以讓使用者自定義路徑
軟體的執行》start.py》scr.py(主程式,業務邏輯功能)》提現功能下呼叫common.py中日誌功能並記錄到log資料夾下的transcation.log檔案中,並將路徑設定為可由使用者自定義—呼叫conf資料夾下的setting.py的路徑設定功能。
importos
base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #當前執行檔案下的根目錄
log_path=r'%s\log\transcation.log' %base_dir #使用者自定義
將start.py檔案放入根目錄下,所有需要新增環境變數的問題都迎刃而解,不需要繞著彎去新增環境變數。
python函式 模組
一 函式 函式是組織好的,可以重複利用,用來實現一定功能的 段。1 函式的組成部分 1 函式 塊以 def 關鍵字開始,後接函式名稱和括號 然後是冒號 2 任何傳入的引數和自變數必須放在 中 3 函式第一行語句可以寫注釋表明函式的功能 4 段,描述了函式實現的功能,需要縮排 5 return 表示式...
Python函式 模組
模組 定義函式使用def 函式體寫在縮排塊中,函式的返回值用return語句返回,函式執行完畢也沒有return語句時,自動return none 如果想定義乙個什麼事也不做的空函式,可以用pass語句,pass可以用來作為佔位符,如果沒想好怎麼寫,可以先寫乙個pass函式,讓 執行起來 函式 含義...
Python 函式 模組
1.函式的定義 2.函式的呼叫 格式 函式名 函式只能先定義再使用,即函式的呼叫不能出現在函式定義部分的上方。3.除錯工具3.函式注釋 4.函式引數的使用 形參是乙個容器實參是放在容器內的東西。5.函式的返回值 使用return關鍵字可以返回結果。用return返回後,後續的 都不會再執行。模組1....