語句表達式: 在Python中支持遍歷迴圈的對象:可迭代器對象,支持迭代協議的對象 比如列表list沒有迭代功能只是可迭代對象 迭代:迭代協議 --> 例:f.__next__() 屬於f的迭代方法,全局的迭代方法為next(f) 迭代工具 --> for,…推導… map… 迭代器對象 已經實現 ...
語句表達式:
在Python中支持遍歷迴圈的對象:可迭代器對象,支持迭代協議的對象
比如列表list沒有迭代功能只是可迭代對象
迭代:迭代協議 --> 例:f.__next__() 屬於f的迭代方法,全局的迭代方法為next(f)
迭代工具 --> for,…推導… map…
迭代器對象 已經實現
可迭代對象 iter() --> __iter__()用於生成迭代器
iter(f) is f 判斷f是否有迭代功能
內置可迭代對象 --> range() map(函數,可迭代對象) zip() …
註意:list在數據量小的時候操作簡單方便,在數據量大的時候占用過大記憶體,不如支持迭代協議的對象,用到某個值就取出某個值,對記憶體的消耗小。
函數:
Why:最大化代碼重用、最小化代碼冗餘、過程分解
定義: def 函數名(參數1,…):函數體
調用:函數名(實際參數)
變數作用域:Built-in、Global(global)、Enclousure(nonlocal)、Local
參數:傳遞1. 不可變類型,傳遞副本給函數,函數內操作不影響原始值
2. 可變類型,傳遞地址引用,函數內操作可能會影響原始值
傳副本可以不改變原始值
匹配 位置匹配、關鍵字匹配、預設值(調用時省略傳值)、*args任意數量參數(接收元組)、**kwargs(接收字典表)
Lambda表達式:定義匿名函數,基本格式 lambda 參數1,… :函數
高級工具:map(函數,可迭代對象)、filter(函數,可迭代對象)
!!!註意委托模式的使用!!! 代碼實例:
def hello_chinese(name): print('您好:', name) def hello_english(name): print('hello', name) def hello_japanese(name): print('こんにちは', name) hello = hello_english # hello = lambda name:print('你好', name) hello('tom') #這個步驟就委托 hello_english 函數
def hello(action, name):
action(name)
hello(hello_japanese, 'tom') #這個步驟就委托 hello_japanese 函數
#hello(lambda name: print('nllpko', name), 'tom')
包與模塊管理
模塊
指令:import from importlib.reload(模塊)
包
Why:代碼重用 命名空間 實現數據或服務共用
步驟:1找到模塊文件 2編譯為位元組代碼 3運行模塊文件
如果想使用模塊的最新改變的結果可使用
import importlib
importlib.reload(模塊) (註意在調用模塊時直接(import 模塊名)不能使用(from…import…)形式)
搜索範圍:1程式主目錄 2環境變數 3標準庫 4擴展庫
面向對象編程
步驟:OOA面向對象分析 OOD面向對象設計 OOP面向對象編程
實現:1分析對象的特征行為 2寫類描述對象模版 3實例化,模擬過程
特征:封裝 繼承 多態
def __repr__(self): return… 或 def __str__(self): return…
print(對象) 可以得到想要列印與對象相關的內容
實例代碼
class Book: count = 0 def __init__(self, title, price=0.0, author=None): self.title = title self.price = price self.author = author Book.count += 1 def __del__(self): Book.count -= 1 def __repr__(self): return '<圖書: {}>'.format(self.title) def __str__(self): return '[圖書:{}, 價格:{}]'.format(self.title, self.price) def print_info(self): print(self.title, self.price, self.author) if __name__ == '__main__': book1 = Book('Python經典', price = 29.0, author = 'Tom') book2 = Book('Flask') book3 = Book('ASP.net') del(book3) print(book1) # 運行後會看到[圖書:Python經典, 價格:29.0] # print('圖書數量:{}'.format(Book.count))