欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

Python核心概念解析:可變性、無(wú)序性與對(duì)象模型

Python核心概念解析:可變性、無(wú)序性與對(duì)象模型 簡(jiǎn)介本資源是南開(kāi)大學(xué)軟件學(xué)院Python課程期末復(fù)習(xí)的系統(tǒng)性整理筆記面向計(jì)算機(jī)相關(guān)專(zhuān)業(yè)本科生及Python初學(xué)者聚焦核心考點(diǎn)與易錯(cuò)難點(diǎn)助力高效備考與知識(shí)體系構(gòu)建。內(nèi)容覆蓋數(shù)據(jù)結(jié)構(gòu)字典、集合、元組、列表的特性與操作、內(nèi)存管理引用機(jī)制、淺拷貝與深拷貝、面向?qū)ο缶幊填?lèi)與實(shí)例屬性、私有成員、classmethod/staticmethod裝飾器、C3算法下的MRO繼承順序、魔法函數(shù)init、str、__dict__等、函數(shù)進(jìn)階*args/**kwargs、默認(rèn)參數(shù)陷阱、生成器與三器一魔以及正則表達(dá)式等關(guān)鍵模塊知識(shí)點(diǎn)講解結(jié)合典型代碼示例與運(yùn)行結(jié)果分析。資源為1個(gè)5.28MB的DOCX文檔結(jié)構(gòu)清晰、排版規(guī)范含大量對(duì)比表格、內(nèi)存圖示與語(yǔ)法速查片段便于復(fù)習(xí)查閱與重點(diǎn)標(biāo)注。目前已有1200人學(xué)習(xí)下載是兼顧理論深度與應(yīng)試實(shí)用性的高質(zhì)量期末沖刺資料。1. Python期末復(fù)習(xí)不是背題庫(kù)而是搞懂“Python怎么想問(wèn)題”一份南開(kāi)軟院學(xué)生親測(cè)有效的入門(mén)路徑你是不是也這樣翻開(kāi)《Python期末復(fù)習(xí)超全》這個(gè)標(biāo)題第一反應(yīng)是——“又來(lái)一套題背完就忘考完就丟”別急這份材料根本不是傳統(tǒng)意義上的“題庫(kù)”它是一份用真實(shí)課堂節(jié)奏打磨出來(lái)的思維導(dǎo)圖式復(fù)習(xí)指南。它不從“print(Hello World)”開(kāi)始教而是直接帶你站在南開(kāi)軟件學(xué)院老師出題的視角看為什么字典和集合必須無(wú)序?yàn)槭裁丛M能當(dāng)字典的key而列表不能為什么list.sort()沒(méi)有返回值但sorted()卻有這些問(wèn)題背后不是規(guī)則而是Python對(duì)內(nèi)存、對(duì)象、引用的真實(shí)處理邏輯。它適合誰(shuí)適合那個(gè)剛學(xué)完循環(huán)和if語(yǔ)句、一看到“MRO算法”就頭皮發(fā)麻、抄了十遍super()還是不知道它在找誰(shuí)的你也適合那個(gè)已經(jīng)會(huì)寫(xiě)爬蟲(chóng)但總被面試官問(wèn)“a [1,2]; b a; b.append(3)之后a變沒(méi)變”給問(wèn)懵的新手。這不是讓你“多做一道題”而是幫你把散落的知識(shí)點(diǎn)焊進(jìn)一個(gè)叫“Python世界觀”的底座里——底座穩(wěn)了新代碼來(lái)了你第一反應(yīng)不再是“這行報(bào)錯(cuò)我搜過(guò)但看不懂”而是“哦它在找這個(gè)對(duì)象的__enter__方法”。2. 先搞懂一個(gè)概念Python里“無(wú)序”不是亂序而是“不靠位置說(shuō)話(huà)”字典與集合的本質(zhì)區(qū)別很多新手卡在第一步為什么老師反復(fù)強(qiáng)調(diào)“字典和集合是無(wú)序的”可我print(dict)明明看到鍵值對(duì)排得整整齊齊這里藏著一個(gè)關(guān)鍵誤會(huì)——“無(wú)序”不是指打印出來(lái)不整齊而是指Python不保證、也不依賴(lài)元素的物理存儲(chǔ)順序來(lái)定義它們的身份和行為。我們拆開(kāi)來(lái)看。2.1 字典靠“鍵”查不靠“第幾個(gè)”想象你有一本紙質(zhì)通訊錄里面按人名拼音排序。你找“張三”翻到P頁(yè)找“李四”翻到L頁(yè)。你從不關(guān)心“張三”是第37頁(yè)、“李四”是第21頁(yè)——你只認(rèn)名字。字典就是這本通訊錄的電子版。它的核心能力是O(1)平均時(shí)間復(fù)雜度的查找靠的是哈希表Hash Table當(dāng)你寫(xiě)my_dict[name]Python立刻把name算出一個(gè)數(shù)字哈希值跳到內(nèi)存里對(duì)應(yīng)的位置取值完全跳過(guò)了“從頭數(shù)第幾個(gè)”的過(guò)程。所以哪怕你先my_dict[z] 100再my_dict[a] 1它內(nèi)部存儲(chǔ)順序可能反著來(lái)但你調(diào)用my_dict[a]永遠(yuǎn)秒出結(jié)果。這就是“無(wú)序”的價(jià)值犧牲順序換取速度。# 看似有序?qū)崉t偶然 student_grades {math: 85, english: 92, science: 78} print(student_grades) # 可能輸出 {math: 85, english: 92, science: 78} # 但這順序不是語(yǔ)言保證的Python 3.7雖保持插入順序?yàn)榧嫒菪约拥膬?yōu)化但邏輯上它仍是“無(wú)序結(jié)構(gòu)” # 你絕不能寫(xiě)first_subject list(student_grades.keys())[0] // 這是危險(xiǎn)的依賴(lài)提示list(dict.keys())得到的列表順序在Python 3.7中確實(shí)是插入順序但這屬于實(shí)現(xiàn)細(xì)節(jié)不是語(yǔ)言規(guī)范。考試或面試中若考察“字典是否有序”標(biāo)準(zhǔn)答案仍是“邏輯上無(wú)序”因?yàn)樗脑O(shè)計(jì)目標(biāo)從來(lái)不是維護(hù)順序而是高效查找。2.2 集合去重的終極形態(tài)連“位置”都不給你留集合更進(jìn)一步。它連“鍵”都不需要只要求元素唯一且可哈希。它的底層也是哈希表但只存“鍵”沒(méi)有“值”。所以當(dāng)你寫(xiě)my_set {1, 2, 3}Python做的不是“記住1在前、2在中、3在后”而是“記住內(nèi)存里有一個(gè)位置存著1一個(gè)位置存著2一個(gè)位置存著3”。你無(wú)法用索引my_set[0]訪(fǎng)問(wèn)因?yàn)樗鼔焊鶝](méi)定義“第0個(gè)”是誰(shuí)。它的所有操作——add(),remove(),in判斷——都基于哈希查找時(shí)間復(fù)雜度同樣是O(1)。# 創(chuàng)建空集合必須用 set(){} 是字典這是新手高頻翻車(chē)點(diǎn) empty_set set() # ? 正確創(chuàng)建空集合 empty_dict {} # ? 正確創(chuàng)建空字典 # wrong_set {} # ? 錯(cuò)誤這創(chuàng)建的是字典不是集合 # 集合自動(dòng)去重且不記錄順序 nums [1, 2, 2, 3, 1, 4] unique_nums set(nums) print(unique_nums) # 輸出可能是 {1, 2, 3, 4} 或 {4, 1, 2, 3}順序不重要 # 檢查是否存在快如閃電 print(2 in unique_nums) # TrueO(1)時(shí)間2.3 對(duì)比列表為什么列表能索引而字典/集合不能列表是“數(shù)組”的Python化身。它在內(nèi)存里是一塊連續(xù)的空間每個(gè)位置存一個(gè)元素的引用ID。所以my_list[0]就是“去內(nèi)存地址A取第一個(gè)引用”my_list[1]就是“去地址A8字節(jié)取第二個(gè)引用”。這種結(jié)構(gòu)天生支持索引和切片但插入/刪除中間元素要移動(dòng)后面所有元素時(shí)間復(fù)雜度O(n)。特性列表 (list)字典 (dict)集合 (set)是否有序有序位置即身份邏輯無(wú)序鍵即身份邏輯無(wú)序元素即身份是否可索引?list[0]?dict[0]報(bào)錯(cuò)?set[0]報(bào)錯(cuò)是否可重復(fù)? 允許重復(fù)元素? key不能重復(fù)值可重復(fù)? 元素絕對(duì)唯一核心優(yōu)勢(shì)快速按位置訪(fǎng)問(wèn)、切片快速按鍵查找、插入、刪除快速去重、成員判斷、集合運(yùn)算2.4 常見(jiàn)問(wèn)題排查為什么我的字典“看起來(lái)有序”卻報(bào)錯(cuò)現(xiàn)象1我用for k in my_dict:遍歷輸出順序和我插入的一樣但老師說(shuō)字典無(wú)序我該信誰(shuí)原因Python 3.7為提升用戶(hù)體驗(yàn)?zāi)J(rèn)保持插入順序CPython實(shí)現(xiàn)細(xì)節(jié)但這不改變其“無(wú)序數(shù)據(jù)結(jié)構(gòu)”的本質(zhì)定義。考試中若問(wèn)“字典是否有序”答“邏輯上無(wú)序”才得分。依賴(lài)順序?qū)懘a如取list(dict.keys())[0]在舊版本Python或某些解釋器下會(huì)崩潰。解決所有需要確定順序的場(chǎng)景顯式轉(zhuǎn)換sorted(dict.keys())按字母序或list(dict.items())按插入序僅限3.7且不推薦依賴(lài)。現(xiàn)象2my_set {1, 2, 3}; print(my_set[0])報(bào)錯(cuò)TypeError: set object is not subscriptable。原因集合不支持索引操作符[]因?yàn)樗鼪](méi)有“第0個(gè)”的概念。它的設(shè)計(jì)哲學(xué)是“只問(wèn)‘有沒(méi)有’不問(wèn)‘在哪兒’”。解決若需按順序處理先轉(zhuǎn)成列表for item in sorted(my_set):或list(my_set)[0]但后者順序不保證慎用?,F(xiàn)象3my_dict {a: 1, b: 2}; my_dict[c]報(bào)錯(cuò)KeyError但my_dict.get(c)返回None。原因[]是“強(qiáng)硬訪(fǎng)問(wèn)”找不到就炸.get()是“禮貌詢(xún)問(wèn)”找不到就給個(gè)默認(rèn)答案默認(rèn)None。這是Python“請(qǐng)求寬恕而非許可”EAFP哲學(xué)的體現(xiàn)。解決處理可能不存在的key時(shí)優(yōu)先用.get(key, default_value)避免try/except過(guò)度使用?,F(xiàn)象4my_list [1, 2, 3]; my_list.append([4, 5])后my_list變成[1, 2, 3, [4, 5]]但我想把4和5“加進(jìn)去”而不是“加一個(gè)列表”。原因.append()是“加一個(gè)元素”.extend()才是“加多個(gè)元素”。新手?;煜@兩個(gè)方法。解決記口訣“append是單個(gè)extend是展開(kāi)”。要加多個(gè)用my_list.extend([4, 5])結(jié)果是[1, 2, 3, 4, 5]。3. 別再死記硬背了理解“可變”與“不可變”才能真正看懂Python的內(nèi)存“元組不可變列表可變”——這句話(huà)你背過(guò)但當(dāng)a (1, 2); b a; b (3,)后a還是(1, 2)而a [1, 2]; b a; b [3]后a卻變成了[1, 2, 3]你是不是瞬間懵了這背后不是語(yǔ)法玄學(xué)而是Python對(duì)對(duì)象身份identity和對(duì)象值value的嚴(yán)格區(qū)分。搞懂這個(gè)你才算真正踏入Python的大門(mén)。3.1 一切皆對(duì)象三個(gè)身份證缺一不可Python里每個(gè)東西都是對(duì)象它有三張“身份證”標(biāo)識(shí)identity對(duì)象在內(nèi)存中的唯一地址用id()函數(shù)查看。就像你的身份證號(hào)一生不變。類(lèi)型type對(duì)象的種類(lèi)用type()查看。比如int,str,list。值value對(duì)象當(dāng)前攜帶的數(shù)據(jù)。比如數(shù)字5字符串hello。關(guān)鍵來(lái)了變量如a,b不是盒子而是貼在對(duì)象身上的標(biāo)簽。a 5的意思是“把標(biāo)簽a貼到內(nèi)存里那個(gè)值為5的對(duì)象上”。b a的意思是“把另一個(gè)標(biāo)簽b也貼到同一個(gè)對(duì)象上”。所以a和b指向同一個(gè)id。# 不可變對(duì)象數(shù)字 x 10 y x print(id(x) id(y)) # Truex和y指向同一個(gè)整數(shù)對(duì)象 x x 1 # 注意這不是修改10而是讓x指向一個(gè)新的對(duì)象11 print(x) # 11 print(y) # 10y依然指著原來(lái)的10 print(id(x) id(y)) # False現(xiàn)在x和y指向不同對(duì)象了3.2 可變對(duì)象標(biāo)簽貼在“容器”上容器里的東西可以換列表、字典、集合是“容器型”對(duì)象。a [1, 2]的意思是在內(nèi)存里造一個(gè)“箱子”列表對(duì)象把1和2放進(jìn)去再把標(biāo)簽a貼在這個(gè)箱子上。b a是把另一個(gè)標(biāo)簽b也貼到同一個(gè)箱子上。此時(shí)通過(guò)a或b去修改箱子里的東西比如a.append(3)箱子本身沒(méi)換只是里面多了個(gè)3所以b看到的也是[1, 2, 3]。# 可變對(duì)象列表 a [1, 2] b a # b和a指向同一個(gè)列表對(duì)象 print(id(a) id(b)) # True a.append(3) # 修改箱子往里面加一個(gè)3 print(a) # [1, 2, 3] print(b) # [1, 2, 3]b看到的也是修改后的箱子 # 關(guān)鍵對(duì)比 對(duì)可變對(duì)象是原地修改對(duì)不可變對(duì)象是創(chuàng)建新對(duì)象 c [1, 2] d c c [3] # 等價(jià)于 c.extend([3])原地修改 print(c) # [1, 2, 3] print(d) # [1, 2, 3]d也變了 e (1, 2) f e e (3,) # 等價(jià)于 e e (3,)創(chuàng)建新元組 print(e) # (1, 2, 3) print(f) # (1, 2)f沒(méi)變3.3 元組的“不可變”到底指什么為什么它能當(dāng)字典key元組的不可變是指元組對(duì)象自身包含的元素引用不能被修改。你不能做my_tuple[0] 10。但它不保證它里面的元素本身不可變?nèi)绻M里存了一個(gè)列表那個(gè)列表還是可以變的。# 元組的不可變是“一層”的 t (1, [2, 3], hello) # t[0] 10 # ? 報(bào)錯(cuò)不能改元組的第一個(gè)元素 # t[2] world # ? 報(bào)錯(cuò)不能改元組的第三個(gè)元素 t[1].append(4) # ? 可以改的是元組里那個(gè)列表對(duì)象元組只是存了它的引用 print(t) # (1, [2, 3, 4], hello) # 為什么能當(dāng)key因?yàn)樽值涞膋ey必須是“可哈希的”hashable # 可哈希意味著對(duì)象的hash值在其生命周期內(nèi)不變且相等的對(duì)象必須有相同hash值 # 不可變對(duì)象str, int, tuple天然滿(mǎn)足可變對(duì)象list, dict, set不滿(mǎn)足因?yàn)橹底兞薶ash就得變 my_dict {(1, 2): point, (a, b): pair} # ? 元組可哈希能當(dāng)key # my_dict {[1, 2]: point} # ? 列表不可哈希報(bào)錯(cuò) TypeError3.4 常見(jiàn)問(wèn)題排查為什么我的函數(shù)默認(rèn)參數(shù)“記住了”上次的值現(xiàn)象寫(xiě)了一個(gè)函數(shù)def add_item(item, my_list[]): my_list.append(item); return my_list第一次調(diào)用add_item(1)返回[1]第二次調(diào)用add_item(2)卻返回[1, 2]原因默認(rèn)參數(shù)my_list[]是在函數(shù)定義時(shí)創(chuàng)建的不是每次調(diào)用時(shí)創(chuàng)建。這個(gè)空列表對(duì)象在內(nèi)存里只有一份所有不傳my_list參數(shù)的調(diào)用都共享這個(gè)列表對(duì)象。這就是“可變默認(rèn)參數(shù)陷阱”。解決永遠(yuǎn)用None作為默認(rèn)值然后在函數(shù)體內(nèi)檢查并創(chuàng)建新對(duì)象# ? 危險(xiǎn)可變默認(rèn)參數(shù) def bad_append(item, lst[]): lst.append(item) return lst # ? 安全用None作哨兵 def good_append(item, lstNone): if lst is None: lst [] # 每次調(diào)用都創(chuàng)建新列表 lst.append(item) return lst print(good_append(1)) # [1] print(good_append(2)) # [2]干凈現(xiàn)象a [1, 2]; b a; b[0] 99; print(a)輸出[99, 2]我以為b a是復(fù)制了一份。原因是賦值不是復(fù)制。它只是讓b也指向a所指向的那個(gè)列表對(duì)象。要真正復(fù)制得用copy()淺拷貝或deepcopy()深拷貝。解決明確你的需求只需一層復(fù)制列表里全是不可變對(duì)象b a.copy()或b a[:]需要完全獨(dú)立副本列表里還有列表import copy; b copy.deepcopy(a)4. 面向?qū)ο蟛皇庆偶际亲尨a“自己管自己”從self到super()的實(shí)戰(zhàn)邏輯“面向?qū)ο缶幊獭甭?tīng)起來(lái)高大上但在Python期末復(fù)習(xí)里它最樸素的目標(biāo)就一個(gè)把數(shù)據(jù)屬性和操作數(shù)據(jù)的代碼方法打包在一起讓這個(gè)包對(duì)象能自己管理自己的狀態(tài)。self不是語(yǔ)法糖它是這個(gè)包的“內(nèi)部身份證”super()不是魔法它是這個(gè)包在家族譜系里“向上找長(zhǎng)輩幫忙”的聯(lián)絡(luò)方式。我們從一個(gè)具體例子出發(fā)。4.1self對(duì)象的“我”不是關(guān)鍵字是約定self只是一個(gè)形參名你可以叫它this或me但所有人都叫self這是約定。它的作用是讓類(lèi)里的方法能明確知道“我現(xiàn)在操作的是哪個(gè)具體的實(shí)例” 沒(méi)有self方法就不知道自己在跟誰(shuí)對(duì)話(huà)。class Student: def __init__(self, name, score): self.name name # 把參數(shù)name存到這個(gè)實(shí)例的name屬性里 self.score score # 把參數(shù)score存到這個(gè)實(shí)例的score屬性里 def introduce(self): # self.name 就是“我自己的名字”不是某個(gè)全局變量 return f我是{self.name}分?jǐn)?shù)是{self.score} def upgrade(self, points): # self.score 就是“我自己的分?jǐn)?shù)”升級(jí)只影響我自己 self.score points return f{self.name}升級(jí)了新分?jǐn)?shù){self.score} # 創(chuàng)建兩個(gè)不同的實(shí)例兩個(gè)不同的學(xué)生 alice Student(Alice, 85) bob Student(Bob, 92) print(alice.introduce()) # 我是Alice分?jǐn)?shù)是85 print(bob.introduce()) # 我是Bob分?jǐn)?shù)是92 alice.upgrade(5) # Alice升級(jí)了新分?jǐn)?shù)90 print(bob.score) # 92Bob的分?jǐn)?shù)完全沒(méi)受影響4.2 繼承不是“抄代碼”是“建立家族關(guān)系”繼承的核心是讓子類(lèi)自動(dòng)獲得父類(lèi)的所有屬性和方法并可以在此基礎(chǔ)上添加新功能或修改舊功能。它建立的是一種“is-a”是一個(gè)關(guān)系Dogis-aAnimal。南開(kāi)復(fù)習(xí)材料里提到的“鉆石繼承”和“MRO算法”就是當(dāng)這個(gè)家族關(guān)系變得復(fù)雜比如Dog同時(shí)繼承Animal和Pet時(shí)Python如何確保每個(gè)方法只被調(diào)用一次、且按正確順序調(diào)用的規(guī)則。class Animal: def __init__(self, name): self.name name def speak(self): return f{self.name} makes a sound class Dog(Animal): # Dog 繼承 Animal def speak(self): # 重寫(xiě)override父類(lèi)方法 return f{self.name} barks: Woof! class Cat(Animal): def speak(self): return f{self.name} meows: Meow! # Dog和Cat自動(dòng)有了__init__和name屬性無(wú)需重復(fù)寫(xiě) dog Dog(Buddy) cat Cat(Whiskers) print(dog.speak()) # Buddy barks: Woof! print(cat.speak()) # Whiskers meows: Meow!4.3super()家族里的“找長(zhǎng)輩”協(xié)議解決鉆石繼承難題當(dāng)繼承鏈變長(zhǎng)比如class Medium1(Father, Mother):而Father和Mother又都繼承自Grandparent就可能出現(xiàn)“Grandparent.__init__()被調(diào)用兩次”的問(wèn)題鉆石繼承。super()就是Python提供的解決方案它不指定具體調(diào)哪個(gè)父類(lèi)而是按照方法解析順序MRO去找下一個(gè)應(yīng)該執(zhí)行的類(lèi)的方法。class Grandparent: def __init__(self, name): print(fGrandparent.__init__({name})) self.name name class Father(Grandparent): def __init__(self, name, job): print(fFather.__init__({name}, {job})) super().__init__(name) # 調(diào)用MRO中下一個(gè)類(lèi)Grandparent的__init__ self.job job class Mother(Grandparent): def __init__(self, name, hobby): print(fMother.__init__({name}, {hobby})) super().__init__(name) # 同樣調(diào)用Grandparent.__init__ self.hobby hobby class Child(Father, Mother): def __init__(self, name, job, hobby, school): print(fChild.__init__({name}, {job}, {hobby}, {school})) # super()會(huì)按MRO順序調(diào)用Father.__init__ - Mother.__init__ - Grandparent.__init__ # Grandparent.__init__只執(zhí)行一次 super().__init__(name, job) # 先調(diào)Father.__init__ # 注意Mother.__init__不會(huì)被自動(dòng)調(diào)用需要手動(dòng)補(bǔ)上或在Father.__init__里用super調(diào)用 # 這里簡(jiǎn)化實(shí)際復(fù)雜繼承需仔細(xì)設(shè)計(jì) self.school school # 查看MRO順序 print(Child.__mro__) # 輸出類(lèi)似(class __main__.Child, class __main__.Father, class __main__.Mother, class __main__.Grandparent, class object) # Python 3 使用C3線(xiàn)性化算法計(jì)算MRO確保每個(gè)父類(lèi)只出現(xiàn)一次且子類(lèi)總在父類(lèi)之前4.4 常見(jiàn)問(wèn)題排查為什么__init__里不寫(xiě)super()我的父類(lèi)屬性就沒(méi)了現(xiàn)象class Dog(Animal): def __init__(self, name, breed): self.breed breed然后dog Dog(Buddy, Golden)print(dog.name)報(bào)錯(cuò)AttributeError。原因你重寫(xiě)了__init__但沒(méi)調(diào)用父類(lèi)Animal.__init__所以self.name name這行根本沒(méi)執(zhí)行name屬性從未被創(chuàng)建。解決只要重寫(xiě)了__init__就必須顯式調(diào)用super().__init__(...)來(lái)初始化父類(lèi)部分?,F(xiàn)象class A: def method(self): print(A); class B(A): def method(self): print(B); class C(A): def method(self): print(C); class D(B, C): pass; D().method()輸出B為什么不是C或報(bào)錯(cuò)原因這就是MRO在起作用。D.__mro__是(D, B, C, A, object)所以method首先在D找沒(méi)找到再到B找找到了就執(zhí)行B.method不再繼續(xù)往下找C。解決理解MRO是調(diào)試多繼承的關(guān)鍵。用ClassName.__mro__隨時(shí)查看順序。現(xiàn)象property裝飾器是什么為什么song.length能像屬性一樣訪(fǎng)問(wèn)但song.set_length(100)卻要調(diào)用方法原因property把一個(gè)方法偽裝成了屬性。song.length觸發(fā)的是length這個(gè)property方法它內(nèi)部可以做任何邏輯比如檢查合法性但調(diào)用者感覺(jué)不到。length.setter則定義了song.length 100時(shí)該做什么。解決這是封裝的利器。把數(shù)據(jù)校驗(yàn)、計(jì)算邏輯藏在屬性訪(fǎng)問(wèn)背后對(duì)外提供簡(jiǎn)潔接口。class Song: def __init__(self, title): self.title title self._length 0 # 真實(shí)存儲(chǔ)用私有屬性 property def length(self): getter讀取length return self._length length.setter def length(self, value): setter設(shè)置length帶校驗(yàn) if value 0: raise ValueError(Length cannot be negative) self._length value song Song(My Song) song.length 180 # 觸發(fā) setter自動(dòng)校驗(yàn) print(song.length) # 觸發(fā) getter返回1805. 從“能跑通”到“真理解”動(dòng)手跑通第一個(gè)面向?qū)ο笮№?xiàng)目——學(xué)生成績(jī)管理系統(tǒng)光看概念容易飄現(xiàn)在我們動(dòng)手做一個(gè)極簡(jiǎn)但完整的項(xiàng)目一個(gè)能錄入、查詢(xún)、統(tǒng)計(jì)學(xué)生成績(jī)的系統(tǒng)。它會(huì)用到復(fù)習(xí)材料里所有的核心概念類(lèi)、屬性、方法、繼承、super()、property、異常處理。每一步都解釋清楚“為什么這么寫(xiě)”而不是“照著抄”。5.1 第一步定義基礎(chǔ)類(lèi)Student封裝數(shù)據(jù)和基本行為我們要讓每個(gè)學(xué)生對(duì)象自己記住自己的名字、各科成績(jī)并能算出自己的平均分。這正是self和屬性的用武之地。class Student: def __init__(self, name, scoresNone): 初始化學(xué)生 :param name: 學(xué)生姓名str :param scores: 成績(jī)字典如 {math: 85, english: 92}默認(rèn)為空字典 self.name name # 用None作默認(rèn)值避免可變默認(rèn)參數(shù)陷阱 self._scores scores if scores is not None else {} property def scores(self): getter返回成績(jī)字典的副本防止外部直接修改 return self._scores.copy() # 返回副本保護(hù)內(nèi)部數(shù)據(jù) def add_score(self, subject, score): 添加或更新一門(mén)課的成績(jī) if not isinstance(score, (int, float)) or score 0 or score 100: raise ValueError(Score must be a number between 0 and 100) self._scores[subject] score def get_average(self): 計(jì)算并返回平均分 if not self._scores: return 0.0 return sum(self._scores.values()) / len(self._scores) def __str__(self): 定義打印學(xué)生時(shí)的友好格式 avg self.get_average() return f學(xué)生: {self.name}, 成績(jī): {self._scores}, 平均分: {avg:.1f}解釋這里用了property保護(hù)scores外部只能讀不能改add_score里做了輸入校驗(yàn)__str__讓print(student)輸出可讀信息。這些都是面向?qū)ο蠓庋b的體現(xiàn)。5.2 第二步定義管理類(lèi)GradeManager用組合代替繼承復(fù)習(xí)材料提到“組合就是沒(méi)有繼承但是用了人家的實(shí)例”。GradeManager不需要是Student的子類(lèi)它只需要“擁有”一堆Student實(shí)例來(lái)管理。這就是組合Composition比繼承Inheritance更靈活、更符合實(shí)際。class GradeManager: def __init__(self): self._students {} # 用字典存學(xué)生key是姓名value是Student對(duì)象 def add_student(self, name): 添加一個(gè)新學(xué)生 if name in self._students: raise ValueError(f學(xué)生 {name} 已存在) self._students[name] Student(name) def add_score(self, name, subject, score): 給指定學(xué)生添加成績(jī) if name not in self._students: raise ValueError(f學(xué)生 {name} 不存在) self._students[name].add_score(subject, score) def get_student_average(self, name): 獲取指定學(xué)生的平均分 if name not in self._students: raise ValueError(f學(xué)生 {name} 不存在) return self._students[name].get_average() def get_class_average(self): 計(jì)算全班平均分 if not self._students: return 0.0 # 對(duì)每個(gè)學(xué)生的平均分求平均 averages [s.get_average() for s in self._students.values()] return sum(averages) / len(averages) def list_all_students(self): 列出所有學(xué)生信息 if not self._students: print(暫無(wú)學(xué)生) return for student in self._students.values(): print(student)解釋GradeManager內(nèi)部用self._students字典管理Student對(duì)象它調(diào)用Student的方法如add_score,get_average但不繼承Student。這清晰劃分了職責(zé)Student管自己GradeManager管一群Student。5.3 第三步運(yùn)行主程序體驗(yàn)“對(duì)象自己管自己”現(xiàn)在我們寫(xiě)一個(gè)簡(jiǎn)單的交互式主程序讓它跑起來(lái)。你會(huì)看到所有復(fù)雜的邏輯數(shù)據(jù)校驗(yàn)、平均分計(jì)算、錯(cuò)誤提示都被封裝在類(lèi)里主程序只需調(diào)用清晰的方法名。def main(): manager GradeManager() # 添加學(xué)生 try: manager.add_student(張三) manager.add_student(李四) print(? 學(xué)生添加成功) except ValueError as e: print(f? 添加失敗: {e}) # 添加成績(jī) try: manager.add_score(張三, 數(shù)學(xué), 85) manager.add_score(張三, 英語(yǔ), 92) manager.add_score(李四, 數(shù)學(xué), 78) manager.add_score(李四, 英語(yǔ), 88) print(? 成績(jī)添加成功) except ValueError as e: print(f? 添加成績(jī)失敗: {e}) # 查詢(xún) print(\n--- 學(xué)生詳情 ---) manager.list_all_students() print(f\n--- 張三的平均分: {manager.get_student_average(張三):.1f}) print(f--- 全班平均分: {manager.get_class_average():.1f}) # 嘗試錯(cuò)誤操作 try: manager.add_score(王五, 數(shù)學(xué), 90) # 王五不存在 except ValueError as e: print(f?? 捕獲預(yù)期錯(cuò)誤: {e}) if __name__ __main__: main()運(yùn)行結(jié)果? 學(xué)生添加成功 ? 成績(jī)添加成功 --- 學(xué)生詳情 --- 學(xué)生: 張三, 成績(jī): {數(shù)學(xué): 85, 英語(yǔ): 92}, 平均分: 88.5 學(xué)生: 李四, 成績(jī): {數(shù)學(xué): 78, 英語(yǔ): 88}, 平均分: 83.0 --- 張三的平均分: 88.5 --- 全班平均分: 85.8 ?? 捕獲預(yù)期錯(cuò)誤: 學(xué)生 王五 不存在5.4 常見(jiàn)問(wèn)題排查為什么我的GradeManager報(bào)錯(cuò)GradeManager object has no attribute _students現(xiàn)象運(yùn)行main()時(shí)manager.add_student(張三)報(bào)錯(cuò)說(shuō)GradeManager沒(méi)有_students屬性。原因最可能的原因是GradeManager.__init__方法名寫(xiě)錯(cuò)了比如寫(xiě)成了def init(self):少了個(gè)下劃線(xiàn)或def __init__(self, name):多了一個(gè)參數(shù)。Python只會(huì)自動(dòng)調(diào)用名為_(kāi)_init__且參數(shù)只有self或self加其他必要參數(shù)的方法。解決仔細(xì)檢查_(kāi)_init__的拼寫(xiě)和參數(shù)。用print(dir(manager))可以查看對(duì)象有哪些屬性確認(rèn)_students是否在其中。現(xiàn)象manager.add_score(張三, 數(shù)學(xué), 150)沒(méi)有報(bào)錯(cuò)但成績(jī)存了150。原因add_score方法里的校驗(yàn)條件寫(xiě)錯(cuò)了比如score 100寫(xiě)成了score 100或者漏掉了or score 100。解決在add_score方法里加一行print(fDebug: trying to set {subject}{score})運(yùn)行看是否進(jìn)入方法然后逐行檢查if條件。現(xiàn)象print(manager.get_student_average(張三))輸出0.0但我知道他有成績(jī)。原因get_student_average方法里self._students[name]取到了學(xué)生對(duì)象但調(diào)用get_average()時(shí)Student.get_average()里self._scores是空字典??赡躠dd_score沒(méi)成功執(zhí)行或者_(dá)scores字典的key寫(xiě)錯(cuò)了比如存了shuxue但查數(shù)學(xué)。解決在Student.get_average里加print(fDebug scores: {self._scores})看實(shí)際存了什么。6. 下一步學(xué)什么從“會(huì)用”到“會(huì)設(shè)計(jì)”一份南開(kāi)軟院風(fēng)格的進(jìn)階路線(xiàn)圖走到這一步你已經(jīng)能讀懂南開(kāi)軟件學(xué)院期末復(fù)習(xí)材料里的大部分內(nèi)容并親手寫(xiě)出一個(gè)有封裝、有校驗(yàn)、有錯(cuò)誤處理的小系統(tǒng)。但這只是起點(diǎn)。真正的Python高手不是知道多少語(yǔ)法而是能在面對(duì)一個(gè)新需求時(shí)快速判斷“該用什么結(jié)構(gòu)、該封裝到哪里、邊界在哪”。下面是我當(dāng)年跟著南開(kāi)導(dǎo)師做課程設(shè)計(jì)時(shí)總結(jié)出的、從“會(huì)用”躍遷到“會(huì)設(shè)計(jì)”的三步走路線(xiàn)每一步都配了具體可練的小任務(wù)。6.1 第一步把“魔法函數(shù)”從“背名字”變成“主動(dòng)本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色综合com| 丁香五月成人网| 日韩狠狠色| 天天干天天插| 狠狠色噜噜狠狠狠888| 亚洲人人干| 色色综合热| 色色射| 婷婷六月激情丁香| 操笔无码| 欧美狠狠草| 日韩无码人妻一区二区| 久久99免费视屏| 五月色网| 亚洲1区| AV人人操| 色亭亭五月天丁香综合AV - 百度 - 百度| 六月丁香激情综合| 日韩AV色色色| 五月婷AV| 色婷婷六月丁香综合欲精品| 日韩三及成人AV片| 狠狠草网| 色综合狠狠色| 国产老熟妇亲子乱对白| 97久久久免费福利网址| 性爱网六月丁香| 嫩草AV久久伊人妇女超级A| 久久99精品久久久久久噜噜| 婷婷综合五月天| 不卡影院午夜理论片| 五月天婷亚洲天综合网综合| 久久国产性爱A V| 99ri国产在线| 性五月激情| 婷婷五月综合色拍| 激情五婷网| 墨西哥毛片内射精| 成人永久免费视频在线观看| 色婷婷综合久久久久| 丁香五月最新网址| 九九热只有精品| 婷婷五月婷| 思思re视频在线| 丁香伊人激情| 久 久9 9 热 视 频| 99热这里只有精品无码| 99视频精品全部观看10| 激情四射五月天| 五月色综合| 丁香六月婷婷综合缴| 丁香婷婷六月在线资源观看| 黄网在线观看免费| 免费亚洲婷婷| 这里只有精品96| 国产精品日本一区二区在线播放| 天堂网操| 99色热| 97色色-99久久| 天天五月香欧美| 激情婷婷五月女| 丁香综合伊人| 国产午夜精品久久久观看| 五月停停激情网| 婷婷夜夜操| 色综合香蕉视频| 射久久丁香五月| 六月丁香色色| 91婷婷五月天综合视频| 五月天伊人网| 日韩成人综合网| 99精品偷自拍| 另类在线观看视频| www.五月激情.com| 久久综合五月天| 久久九九热视频| 九九视频在线观看视频6 | 无码激情AAAAA片-区区| 丁香婷婷色色| 天天狠狠色噜噜| 五月天婷婷视频| 激情综合99| 亚洲热综合| 欧美精品中文字幕亚洲专区| 色色五月婷| 激情网开心网| 97福利视频| 成人片黄网站色大片免费毛片| 67久久| 日本色99| 亚洲五月激情| www.亚洲激情| 啪啪91| 久久丁香婷| 台湾无码A片一区二区| 五月丁香六月婷| 天天干夜夜欢| 色婷网| 五月婷婷 自拍| 色综合色| 91九色无码日韩| 成人免费120分钟啪啪| 99碰碰中文| 在线区区区| 99热这里只有精品99| 成人做爰A片免费看视频| 亚洲不卡123| 亚洲色爽| 99精品视频网| 五夜婷婷| 色婷婷九月| 色吧网综合| 成人电影一区| 丁香五月开心亚洲| 日韩高清久久| 婷婷免费视频| 婷婷五月综合网| 99国产精品久久久久久久久久久| 久久永久网址| 六月综合婷婷开心伊人| 热九九精品| 久久色五月天激情小说| 日本91在线播放| 99色综合网| 亚洲丁香五月天视频| 综合久久丁丁香婷| 色婷五月丁香久亚洲| 亚洲av免费在线| 久久久精品婷婷五月天| 亚洲噜色| 一区无码| 这里只有免费精品| 伊人热婷婷| www.狠狠干com| 亚洲精品字幕在线观看| 婷婷五月,综合伊人| 操操操操操操婷婷五月天| 天天干电影| 内射 无码 伊人| 九九成人高清视频| 色五月婷婷777| 青青草深爱激情网| 亚洲综合五月天婷婷| 五月天合网| 色9999日韩国产| 婷婷爱爱蜜臀天天操| 色婷婷小说| 亚洲宗合激情| 成人精品亚洲性爱| 天天操中文字幕| 欧美激情五月天| 久久无意婷婷| 色碰碰| 成人AV中文字幕| 4438激情网| 4399伦理午夜| 99在线免费视频| 丁香五月天在线观看视频| 婷婷五月丁香综合激情小说| 99热网精品| 丁香六月爱综合| 被强行糟蹋的女人A片| 狠狠夜夜五月丁香| 9 1大香蕉| 欧美色爱五月天| 色噜婷婷| 色婷婷五月天在线观看| 夜夜撸天天日| 久久性操| 狠狠爱青青草| 91se在线视频| 五月天婷婷激情春色小说| 日韩熟女啪啪视频| AAA久久| 久婷婷五月丁香在线观看| 天天舔天天爽| 五月六月婷| 天堂中文国产| 91麻豆国产三级精品福利在线观看| 五月丁香婷庭在线| 久久久18| 色五月婷婷影视| 91无码视频| 五月婷婷六月丁| 色色色色丁香| 久久这里只有精品8| 五月婷婷色色爱| 五月丁香中文字幕| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 久久作爱| 丝袜熟女一区二区三区| 日日夜夜婷婷| 精品人妻一区| 色五月成人在线| 丁香密臀AV激情网| 丁香五月五月婷婷欧美大香蕉| 丁香色五月婷婷| 激情综合五月| 午夜成人在线免费视频| 国产一二区爆乳_1国产日韩一区二区三-成人AV | 在线看黄色| 五月婷色| 美女激情综合| 激情欧美五月丁香| 99热很操老逼| 丁香婷婷天堂| 狼人久草| 青青草tp| 亚洲情欲| 大地资源色婷婷视频在线| 九九aV| 丁香伍月婷电影全集| 玖玖在线视| 天天操天天操天天操| www.97碰碰com| 人妻丰满精品一区二区A片| 亚洲精品婷婷| 婷婷五月丁香网| 天天爽在线视频| 色婷婷亚洲综合av| 中文字幕成人版| 天天爱天天操| 九九在线精品| 日韩AAAAA| 久色| 婷婷色五月激情强奸四射| 久久性爱网站| 天天舔天天摸天天透| 国产亚洲成AV人片在线观黄桃| 九九干视频| 久久 这里只有精品1| 激情六月丁香| 超碰AV在线| 九九精品re免费视频| 国产精品扒开腿做爽爽爽A片唱戏 青青草国产亚洲精品久久 | 日韩成人中文字幕| 日本操碰碰| 色五月婷婷激情| 无码人妻一区二区三区四区| 婷婷六月丁香1| 日韩成人综合网| 亚洲成人九九九| WWW色色色COM| www. 五月. com| 色五月婷婷丁香凹凸| 99国产在线精品视频| 婷婷五月天日逼| 大色鬼综合| 欧美婷| 天天爽天天爽天天爽天天爽天天爽 | 五月婷婷丁香大陆免费| 91avse| 丁香五月婷婷偷拍| 亚韩在线视频| 天天操天天操天天操天天操天天操天天操| 日韩精品在线观看9| 婷婷五月天社区| 人妻22p| 九九Av| 免费黄色片子| 婷婷五月色| 最近韩国日本免费高清观看| 五月激情综合网婷婷| 男人先锋久久| 99啪在线视频| 中文字幕不卡+婷婷五月| 亚洲一区国产传媒| 99er这里只有精品视频| hd五月婷婷在线| 五月丁香网中文字幕| 婷婷五月丁香高清无码| 婷婷香五月| 国产裸舞表演WWWW| 日韩久久视频| www.丁香黄色五月天人与| 91精选国| 97人人干人人操| www.99热日韩.com| 2025年最新亚洲在线欧美| 五月婷婷综合精品| 婷婷综合| 久久曰9| 超碰在线超碰| 色五月丁香五月五月婷婷| 欧美狠狠一在草| 啄木鸟黑丝一区二区| 婷婷涩五月天综合| 久久色区| 十二区无码| 狠狠色色综合| 五月丁香婷婷激情在线| 亚洲AV中文在线| 亚洲九九视频| 99啪啪骑| 精品视频99看在线视频| 丁香五月婷婷五月| 男人操女人高潮91视频| 91chinese 在线| 激情五月婷黄版| 99aese| 日韩一级网站| 99欧美热| 爱爱色五月天| 91碰超| 色五月亚洲| 日本3级片一区2区| 亚洲狠狠操| 狠狠人妻色综合| 亚洲日韩乱码一区二区三区四区 | tingting五月天亚洲| 色五月丁香婷婷在线观看| 在线婷婷| 97自拍99| 激情五月婷婷色| 久久精彩免费视频| 久天综合| 夜夜爽天天爽| 亚洲国产成人AV在线| 噜噜噜噜噜久| 大香蕉99热| 色情婷婷久久五月天| ww亚洲ww在线观看| 国产精品社区| 欧美久久网| 色射婷婷五月天| 五月丁香免费看| 亚洲欧美国产A片免费观看| 久久婷婷丁香五月一二三| 天天搞天天爽| 我想看国产大学生口爆吞精的视频| 九九家庭影院| 91日本在线观看| 99资源在线视频| SESE无码AV| 九九热超碰| 在线视频你懂得| 久久激情网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 天天干天天干天天干| 五月丁香综合| 欧美亚洲999| 99超级碰免费视频| 91九色国产| 成功精品影院| 第四色五月婷婷| 天天干天天操天天爽| 色综啪啪网| 九九99视频精品| 日本色色色| 996er热| 亚洲免费观看高清完整版AV线| 日美三级| 天天干天天操天天射| 综合九九久久| 9久国产| 97香蕉人人在线观看| 欧美爆乳一区二区三区| 无码区婷婷五月花开| 亚洲AV无码一区二| 天天肏视频| 91大神操美女| 色五月婷婷色| 亚洲色色精品| 1024欧美看片| 伊人玖玖网| 五月丁香久| 亚洲最大在线| 亚洲激情无码久久| 色吧网91| www.日本91| 琪琪色五月天| 国自产拍偷拍精品啪啪一区二区| www,婷婷五月天,com| 在线综合亚洲欧美65| 五月激情黄色小说| 九九99香蕉在线视频播放| 99久久玖玖| 久久久五月天| 色婷婷AV在线观看| 久久狼人天堂| 欧美婷| 色婷婷丁香AV综合| 欧美日韩成人免费在线| 婷婷五月丁香高清无码| 中文字幕精品推荐免费在线观| 92国产福利| 日韩无码成人电影| 五月丁香欧美| 日本婷久久| 开心五月婷婷激情| 丁香六月无码播放| 中文字幕成人| 在线播放 精品| 婷婷五月天国产在线播放| 大香蕉五月婷婷| 激情久久久| 六月婷婷激情小说网| 伊人久久大香线蕉AV最新午夜| 色噜噜狠狠色综合网| 色很很96| 激情图片久久| 国产精产国品一二三在观看| 永久免费一区二区三区| 五月婷婷久久网| 婷婷五月丁香超碰| 五月天久久色| 婷婷99| 激情色视频| 久久综合中文| 欧美69色| www,999日本色| 成人AV中文字幕| 丁香婷婷六月激情| 婷婷伊人久久| 黄色片区子| 久热这里只有精品99re,久热这里只有精品7 | 丁香五月婷婷激情视频播放| 超碰操网| www.精品久9| 性色做爰片在线观看WW| 激情综合五月| 五月综合色| renre人人操国产超碰在线| 狠狠久久婷婷| 五月精品99综合| 综合激情视频| 五月丁香久人妻中文| 九九热短视频在线观看| 九热在线这里有精品6| 丁香婷婷性久久| 丁香五月-激情综合| 色情婷婷| 91男同| 色欲AV导航| 日日日日做夜夜夜夜无码| 激情 婷婷| 丁香六月婷婷色XXXX| 色色五月婷| 久久嘟嘟丁香| 色婷婷色综合| 狠狠色综合无线观看| 亚洲色五月| 亚洲av日韩无码| 丁香婷婷深情五月亚洲| 丁香五月婷婷色| a v色婷婷| 五月天婷亚洲天综合网综合| 天天久久66xxx| 另类激情五月| 99操视频| 国产99热在线看| 九九综合九九| 精品九九在线观看视频| 五月丁香手机在线| 五月天色婷婷激情综合| 亚洲欧洲色色| 男人综合网| 性小说五月天| 26UUU精品一区二区Com| 丁香涩涩五月天| 色欲丁香久久| 中文网av| 人妻aV在线| 婷婷久久伊人| 久久久久8888| 五月丁香六月色婷婷综合五月天| 丁香五月天在线视频| 大香蕉啪啪啪| 婷婷区日本| 综合在线丁香五月| 五月丁香花开综合网| 婷婷五月免费在线| 五月婷婷婷| 久热这里| 人妻操逼视频| 最近中文字幕2019视频1| 国产SUV精品一区二区883| 国产真人做爰视频免费| 婷婷色资源| 六月婷在线| 第四色五月婷婷| 久久五月激情综合| 狠狠色五月激情| http://www.lingjunshare.com/ | 另类小说激情五月天| 色五月综合在线| 色五月婷婷网| 五月综合777| 五月天欧美激情| 可以看的AV| 五月丁香 啪啪| www婷婷| 成人无码髙潮喷水A片| 99热爆在线| 91九色视频在线观看| 婷婷九九| 狠狠狠狠狠操| 色色综合网站| 超碰操日| 丁香五月婷婷激情小说| 日本熟女内射| 99热啪啪| 色婷婷人人| 五月天成人综合| 九九视频精品在线免费| 伊人碰碰碰| 丰满少妇猛烈A片免费看观看| 久久香蕉婷婷| 热久久66| 国产成人99久久亚洲综合精品| 一本色道久久88综合日韩精品| 人人干人人操外国| 午夜九九电影| 99re思思精品视频在线观看| 欧美大道不卡| 久久久久久久久月丁| 任你操精品免费| 婷婷亚洲五月丁香综合在线 | 欧美,日韩成人在线| 天天射美女| 激情婷婷丁香色五月| 亚洲无码成人| 激情五月天福利| 激情五月婷婷免费视频| 超碰在线免费9| 欧美情色电影一区二区| 亭亭玉立国色天香| 丁香 亚洲 久久| 日韩一区二区A片免费观看 | 五月婷三级片| 99在线免费视| 丁香六月在线| 亚洲视频操| 玖玖资源站视频| 激情五月婷婷| 超碰91在线| 色天五月天在线观看视频| 国产精品久久久久久久久久免费| 九九热超碰| 天天操中文字幕| 色五月丁香五月婷婷五月成人网| 国产亚洲精品久久久久久牛牛| 大香蕉婷婷丁香| 婷婷五月天激情五月天深爱五月天| 少妇人妻人伦A片| 五月丁香婷婷久久| www.久久爱.com| 婷婷丁香黄色| 五月丁香六月激情综合欧美| 1024AV视频| 丁香五月激情六月| 五月天婷婷色| 五月婷庭丁香在线| 色噜噜狠狠色综无码久久合欧美| 5月激情天| 97福利视频| 99久久婷婷五月综合| 成人丁香五月| 激情五月婷婷啪啪| 激情婷婷久久| 97色婷婷成人综合在线观看| 中文字幕在线日亚洲9| 亚洲色激情| 开心五月婷婷| 婷婷五月电影院| 日本精品99网站| 大香蕉99热| 激情图片婷婷| 色婷婷电影网| AA片在线观看视频在线播放| 26UUU欧美激情一区二区| 婷婷久久综合| 久久AV电影| 99亚洲精品综合在线| www久热com| 五六月婷婷久久| 婷婷五月激情视频在线| 婷婷五月天AV在线| 九九色逼| 五月丁香天天| 五月婷婷综合成人| 99成人| 人妻精品在线| 亚洲操操| 99爱在线视频观看| 99九无网码| 九九免费视频| 天天操,天天插| 丁香影院五月综合| 91狠狠色丁香| 色综合久久五月| 中文字幕丰满孑伦无码专区| 无码区婷婷五月花开| 亚洲激情综| 婷婷激情五月| 色五月丁香网| 蜜臀AV在线成人| 96精品成人无码A片观看金桔 | 天天爽天天| 丁香色情五月综合网站| 欧美久久网| 色婷久久| 久久99激情丁香婷婷小说网| 伊人久久婷婷| 狠狠色噜噜狠狠狠狠狠色综合久久| 精品久久人妻| 91操色| 久久一操| 无码少妇高潮喷水A片免费| 俺去也在线www色官网| 9久久AV| 日本99热| 婷婷五月色惰| 激情婷婷狠狠干| 操逼三区| 丝袜熟女一区二区三区| 色情五月丁香| 啪啪操超碰| 99aese| 91热久久| 夜夜爱爱亚洲| Av狠狠色丁香婷| 色99视频| 五月天婷婷免费视频| 丁香五月AV综合激情| 欧美三日本三级少妇三99| 成人国产欧美大片一区| 天天操天天操天天操天天操天天操| 欧美狠狠地| 99这里只有免费的精品| 激情综合网五月丁香| 大鸡巴伊人网| 亚洲情综合五月天| 久久久精品人妻| 婷婷五月丁香色综合| 欧美性丁香色色五月天| 在线观看五月婷婷网| 五月亭亭色| 这里只有精品96| 婷婷综合网站| 婷婷午夜天| 99热99极品观看| 五月天激情亚洲| 97久久香草精品视频| 99久久亚洲精品视频| 久久 无毛。| 亞洲自怕| 性爱激情久久| 五月天大香蕉av| 99噜噜噜在线播放| 99色婷婷| 日日夜夜干| 狠狠色噜噜狠狠狠狠综合| 丁香五月在线自慰| 久久婷婷丁香| 欧美综合五月丁香六月婷| 婷婷免费视频| www.天天日| 久久六月综合| 狠狠搞狠狠操| 天天干天天做| 九九大香视频| 狠狠综合网| 亚洲综合久| 无码人妻电影| www.色五月| 五月天激情国产综合婷婷| 99ri在线视频| 天天插天天射| 午夜性做爰电影| 人妻丰满精品一区二区A片| 久热免费视频| 综合色在线| 狠狠狠狠草草| 懂色av蜜臀av粉嫩av永陈冠希| 成年视频免费观看| 九九综合色综合| 农村熟妇高潮精品A片| 五月婷婷激情网| 99热亚洲| 丰满人妻妇伦又伦精品国产| 激情丁香五月婷婷| 青草视频在线观看视频| 情欲禁地| 日韩欧美婷婷丁| 精品国产a| 激情五月丁香五月| 精品操逼一区二区| 97人操人免费视频| 91九色精品女同系列| 青草网在线观看| 伊人丁香六月婷婷| 三级大香蕉网| 婷婷亚洲欧美丁香五月| 久久五月激情| 在线另类| 色玖玖网| 色欲影香| 天天色伊人| 国产精品激情五月天色婷婷| 影音先锋91资源站| 亚洲欧美婷婷五月色综合| 能看的av| 久久99草五月婷婷| 色99在线看| 99热最新精品| 丁香五月六月欧美| 成人短视频在线| 九九色精品| 99热97美女| 国产97色在线| 丁香五月激情视频在线| 色五月 五月婷婷| 色婷五月| 亚洲国产成人AV在线| 丁香六月啪啪啪| 五月情四婷婷| 色五月激情综合| 91Chinese在线| 色情五月| 一根材五月婷成人| 日韩99色99| 天天操人人干| 激情婷婷。| 婷婷五月成年人| 99热免费看| 国产激情综合| 激情色情五月天| 天天爽夜夜爽夜夜爽精| 天堂草在线看www| 婷婷五月天色色| www.色色com| 亚洲天堂亚洲色色色| 五月丁香色| 欧美大片| 综合色99| 激情五月天网站| 亚洲第一成人无码A片| www婷婷| 这里只精品热在线18| 久久xxxx| 精品成人在线观看| 天天日综合| A片试看50分钟做受视频| 96精品久久久久久久久| 婷婷六月啪啪| 偷拍丁香九月激情| 侠女刀之记忆电影在线看免费| 天天舔天天摸| 丁香婷婷婷婷十二月在线观看视频| 久久成人性爱| 无码任你操| 99热爆在线| 丁香婷婷六月天| 国产成人网| 超碰com| 偷拍91九色| 成人网页在线观看| 人人人人人人人草| 91婷婷视频| 久热最新视频| 精品影院| 天天在线久久综合 | 99超级碰碰| 99色亚洲| 中文字幕在线视频播放| 成 久久| 无码少妇高潮喷水A片免费| 天天艹天天综合网| 五月停停色色丁香| 五月久熟女| 激情五月天婷婷| 色蜜婷婷| 婷婷日欧美在线观看| 久久精品女人天堂AAA| 色丁香久久久| 久久久久久久久久久久久久久久久精典| 色婷婷激情小说网| 色婷婷基地 | 99久久a线观| 欧美丰满熟妇BBB久久久| 婷婷五月激情四月综合| 五月天激情四射| 激情五月天综合网站网站网站| 五月丁香色婷婷| 天天日天天舔天天摸| 精品久久99码| 日韩无码一区二区三区四区| 国产成人精品一区二区三区视频 | 99亚洲天堂| 狠狠色丁香| 色五月婷婷激情综合网| 99热66| 五月天婷婷深深爱| www.ywav| 五月婷婷成人| 激情文学久久| 嫩草AV久久伊人妇女超级A | 99re热在线观看| 久久hd| 99热在线看| 天天舔天天摸天天射| 香蕉久日夜| 人人摸人人搞| 大香蕉婷婷色| 国外亚洲成AV人片在线观看| 婷婷丁香五月,狠狠综合| 日韩天堂久久| 武则天精品久久| 激情婷婷内射| 成熟妇人A片免费看网站| 色婷视频| 秋霞成人毛片一级A片| 亚洲人妻av| 五月婷婷开心六月激情小说| 日韩色色一区| 操碰97| 色日本网| 国产精品操| 少妇性按摩无码中文A片| 秋霞三及片| 久久九九网| 精品一二三区久久AAA片 | 五月丁香婷婷色| 开心激情网五月| 99无码视频| 天天操天天干天天射| 大香蕉九操| 嫩草综合网| 久久性爱视频| 婷婷五月天av网| 东京热人妻一区二区三区在线| 伊久久婷婷| 99精品久久久久久久婷婷久久| 久久婷婷激情四射五月天| 日日操天天操| 五月亭亭开心网| 婷婷深爱色五月| 色色丁香五月| 婷婷五月天 丁香五月天 裸体| 婷五月天| 日日操,日日爽| 少妇人妻人伦A片| 婷婷久久免费| 深爱五月日韩| 538午夜激情| 大香蕉七区| 国产精产国品一二三在观看| 色综合久久久久| 九九精品视频在线6| 成人五月天在线观看| 五月婷九九草| 最近中文字幕大全免费版在线 | 色五月综合资源推荐| 婷婷五月天亚洲激情戏精品| 亚洲旡码| 久久久久久久久久久44| 99色色视频| 99精品国产在热久久婷婷| 狠狠五月天婷婷激情网。| 91色婷婷综合久久中文字幕二区| 成人一区在线观看| 97在线观视频免费观看 | 婷婷丁香九色| 婷婷精品视频| 欧美成人A片AAA片在线播放| 色五月天在线观看| 俺去啦综合网| 色五月激情五月丁香五月婷婷啪啪综合| 99日本在线| 99日视频在线| 9999综合99综合人| 熟女人妻一区二区三区免费看| 婷婷五月天电影网| 色天堂在线| 久久玖玖综合| 国产精品国产| 天天色天天舔天天爱天天爽| 色五月开心五月激情五月| 五月丁香少妇| 九9九9无码| 99久久久久久久| 国产三级在线播放| 大香蕉天堂色| 成人免费超碰| 97伦色婷婷| 六月婷婷色色网| 爱操天堂| 996热re视频在线观看视频| 九月激情婷婷丁香| 成人国产网| 极品精品一区二区三区在线| 5月丁香综合图区| 亚洲天堂婷婷丁香| 精品热九九| 美女婷婷激情亚洲| 91熟妇大香蕉| 91久久综合亚洲噜噜成人在线| 婷婷性爱综合| 婷婷五月综合网| 久99久热| 狠狠色噜噜狠狠色噜噜噜999| www99热| 色五月久久成人婷婷| 色欲日日躁| 久久这里只有精品网| 婷婷五月AV| 99色免费视频| 色色婷婷丁香五月天| 狠狠插狠狠插| 99啪啪| 操人无码| 婷婷99视频在线| 密视AV综合在线| 色婷婷情片| 99色热| 六月综和久久| 这里只有久久精99| 亚洲乱码在线观看| 伊人五月天在线| 亚洲国产精品VA在线看黑人| 六月婷婷色色网| 99热狠狠操| 国产激情综合| 国产一级婬片毛片| 九九热这里只有精品6| 99毛片| 夜夜操狠狠操| 亚洲AV成人精品网站在线播放| 日本三级大片| 一本道在线电影| 97日日碰碰| 综合色99| 激情五月视频| 婷婷五月丁香久久| www.五月天| 色婷婷激情五月天| 日本激情91| 婷婷色五月亚洲| 五月天婷婷乱论小说| 99ri国产| 五月丁香狠狠爱婷婷综合| 玖玖婷婷五月| 婷婷六月激情丁香| 综合大香蕉| 精品国产AV色一区二区深夜久久| 成人午夜免费电影| 99丁香五月婷| 亚洲欧美婷婷五月色综合| 婷婷五月综合久久中文字幕| 国外亚洲成AV人片在线观看| 人人操人人操919999| 婷婷激情五月天在线视频| 五月婷婷视频在线观看| 激情四射五月天| 97香蕉人人在线观看| 天天色五月| 五月天社区婷婷丁香社区| 性做爰A片免费视频A片直播| 五月丁香六月激情综合| 五月丁香久久久| 天天综合网站| 五月天婷婷激情在线色图| 婷丁香五月天| 五月丁香六月激情欧美综合| 99干在线视频| 激情综合网激情五月网| 天堂久久婷婷| 六月婷婷日| 天天插轮理| 美女网黄| 久久一级片| 呦呦v线| 婷婷在线视频| 91精品久久久久久久| 六月婷婷亚洲| 国产精品扒开腿做爽爽爽A片唱戏 亚洲爆乳无码精品AAA片蜜桃 | 91婷婷五月天综合视频| 丁香婷婷网| 色丁香五月婷婷综合久久| 99热精品一区| 99热啪啪| 99久久久久久| 激情五婷网| 五月丁香淫淫婷婷婷| 影音先锋91在线资源站| 欧美成性色| 国产综合色婷婷精品久久| 亚洲热久| AAA亚洲AV| 国产在线激情视频| 色青青五月| 色色综合网站| 九月丁香亭亭| 婷婷久月| 91久久九九| 五月婷色激情五月| AV在线不卡播放| 5月婷婷6月丁香aV| 1000部毛片A片免费观看| 久久香蕉网| 91狠狠色丁香婷婷综合久久| 日韩AV在线免费观看| 丁香五月婷婷六月丁香| 亚洲成片在线观看| 五月丁香操亭亭网| 色婷婷aV四虎| 韩国三级五月天婷婷。| 亚洲情欲久久| 五月丁香六月婷婷姐| 91色色色视频| 五月天综合视频网| 亚洲啪啪精品| 99在线热视频| 大香蕉九操| 伊人激情啪啪| 丁香五月天AV在线| 啪啪啪综合网| www。88热在线视频免费观看| 九九香蕉网| 噜一噜免费视频| 日韩免费视频| 丁香5月婷婷| 色婷小说| 丁香五月开心亚洲| 五月丁香999| 99热这里有精力| 99er国产| 九九热精品| 青青福利网| 婷婷久久在线| 丁香六月婷婷色播| 色情婷婷| 青草视频在线播放| 午夜激情五月| 精品亚洲日韩99欧美片| 婷色五月| 婷婷亚洲激情在线观看视频| 91a片爽| 婷婷五月激情中文字幕| 综合色情网| 色五月情| 日本久久爱| www.91久久| 亚洲偷| 五月天最新网| 丁香九月激情| 综合福利网| 五月婷婷中文字幕| 99久久婷婷国产综合精品草原| 亚洲av免费在线| 五月天婷婷丁香花| 丁香九月激情久久| 久久综合九九| 五月精品免费XXX| 亚洲第一成人无码A片| 欧美日韩999| 强伦轩人妻一区二区电影| av大香蕉| 性欧美大战久久久久久久83| 婷婷另类小说| www.狠狠操.com| 91亚洲天堂| 超碰av在线| 天天爽天天| 丁香五月天激情婷婷丁香六月| 色九月综合| 成人 在线 日韩| 婷婷五月激情在线| 丁香六月啪| 久久中文网| 五月婷婷性爱| 色色网站在线| 色5在线| 激情久久 婷婷| 五月网站| 99热这里只有精品1025| 免费视频这里只有精品| 综合婷婷| 黄色AAAAAAA| 色色99| 久久人人看| 激情五月深爱婷婷| 伊人久久激情图区五月| 91九色视频在线观看| 99热官网| 色五月琪琪| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 色五月五月天色婷婷色五月| 婷婷五月天激情偷拍| 黄色一极大片| 亚洲图片 丁香婷婷| 婷婷丁香五月综合| 色爱99| 99热这里只有精品22| 丁香花五月天| 婷婷久久五月丁香| 午夜日日| 涩涩激情五月婷婷| 第九色区av天堂| 天天干夜夜谢| 日本久久婷| 99热这里精品| 99国产小视频| 丁香久久五月天视频在线观看| 日韩综合网络男女香蕉a片| 色婷婷文字幕| 欧美日韩精品一区二区三区钱| 中字幕视频在线永久在线观看免费 | 五月精品| 激情综合激情五月一起草| 99成人无码| 月婷婷亚洲| 99热 免费| 综合五月草| 亚洲啪啪视频| 中美日韩成人在线| 大香蕉五月天婷婷丁香91| 色综合色综合色综合| 黄色网址五月婷婷| 婷婷视频在线| 99视频只有精品| 97在线精品| 丁香啪啪| 天天做天天爱| 人妻中文在线| 夜夜穞天天穞狠狠穞AV美女按摩| 久久亚洲激情五码| 五月天桃色深爱网| 五月婷婷之综合激情| 久大香蕉| 9久久久久久久久久久| 人妻激情综合| 5月婷婷激情网| 婷婷五月丁香基地| 婷婷五月天六月丁香| 激情噜噜噜| 涩五月婷婷| 超碰色综合| 996热| 五月婷婷丁香在线| 99在线精品观看99| 少妇水多A片太爽了| 无码日本精品XXXXXXXXX| 性生生活大片又黄又| 国模狼狼| 婷婷新网址| 91人人澡人人爽人人看| 色色色99| www.粉嫩av.com| 五月激情久久综合| 五月丁香婷婷激情澎湃四射| 五月六月丁香激情| 色五月婷婷五月| 日韩另类| 乱岳熟女50岁| 婷婷五月丁香亚洲| 99色.com| 伊人久久婷婷| 精品一区二区三区四区五区六区介绍| 99久久成人| 色色色热热热| 久久综合五月| 开心五月婷婷| 一区=区操屄高清大全av| 综合网啪啪| 欧美日本VA| 丁香五月婷婷在线视频| 婷婷内射视频在线| 久久五月婷| 俺也去五月婷婷丁| 久久九九re热| 日韩色色网| 草婷婷在线| 色五月婷婷91| 99精品视频在线观看| 9久热在线视频| 精品久久99码| 久久九九大香蕉电院| 一区二区乱码视频| 激情综合网五月婷婷| 丁香五月婷婷操逼| 五月丁香香蕉| 色婷丨日丨天丨综合久久| 五月天久久综合婷婷| 亚洲精品99| 99精品超在线播放| 99这里只有精品视频免费| 欧美一级操逼视频| 色婷五月| 美女被肏网站在线看| 亚洲小视频免费观看| 婷婷日日夜夜| Caoub青青超碰| 另类视在线| 欧美大片| 玖玖色综合网| 久久这里只有精品无码| 五月婷婷天堂| 人操综合| www。狠狠干。com| 久久怕怕视频| AA片在线观看视频在线播放| 午夜激情婷婷| 激情图片亚洲| 播五月丁香三月婷婷| 日韩一区二区A片免费观看| 色综合久久综合中文综合网| 五月婷婷m| 五月激情六月宗合| 日韩伊人大香蕉| 色色婷婷综合网| 六月婷婷综合| 亚洲色基地| 丁香五月,激情五月,深爱五月| 超碰chaompinm| 色色综合院| 99性感视频| 九九久久99| 四月婷婷五月丁香| 亚洲色模骚货| 97干干干丁香| 激情丁香婷婷六月天| 五月婷婷丁香五月婷婷丁香| 91干婷婷| 色婷婷成人在线| 五月丁香六月激情综合| 五月天婷婷丁香成人网| 国内婷婷丁香社区在线播放| 婷婷伊人綜合中文字幕| 影音先锋综合网| 激情婷婷网| 五月婷婷丁香日韩在线| 国产六月婷婷| 91婷婷| 色九九综合热99| 九九视频在线观看| 五月色丁香婷婷综合| 天天色,天天操,天天射| 婷婷五月丁香五月| 五月丁香亚洲校园欧美| 久热九九| 丁香五月婷婷天堂大香蕉| 色色色无码| 婷婷五月天天激情| 婷婷丁香五月天在线| 国产激情久久久| 26uuu国产色| 色婷婷影视| 亚洲第一色色色| 26uuu精品国产| 这里只有精品亚洲| 欧美黄色AA片哗啦啦啦| 五月丁香婷婷色| 丁香五月色色| 99热啪啪| www狠狠| 全网最新网黄大秀直播高清,主播国产录屏在线 | 26UUU精品一区二区c〇m| 久久婷婷五月综合| 色色99色色| A片试看50分钟做受视频| ss99热| 五月丁香久久综合91| 丁香五月欧美激情| 久久大香免费|