久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

Python核心概念解析:可變性、無(wú)序性與對(duì)象模型 簡(jiǎn)介本資源是南開(kāi)大學(xué)軟件學(xué)院Python課程期末復(fù)習(xí)的系統(tǒng)性整理筆記面向計(jì)算機(jī)相關(guān)專業(yè)本科生及Python初學(xué)者聚焦核心考點(diǎn)與易錯(cuò)難點(diǎn)助力高效備考與知識(shí)體系構(gòu)建。內(nèi)容覆蓋數(shù)據(jù)結(jié)構(gòu)字典、集合、元組、列表的特性與操作、內(nèi)存管理引用機(jī)制、淺拷貝與深拷貝、面向?qū)ο缶幊填惻c實(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è)有效的入門路徑你是不是也這樣翻開(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ì)寫爬蟲但總被面試官問(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ō)話”字典與集合的本質(zhì)區(qū)別很多新手卡在第一步為什么老師反復(fù)強(qiáng)調(diào)“字典和集合是無(wú)序的”可我print(dict)明明看到鍵值對(duì)排得整整齊齊這里藏著一個(gè)關(guān)鍵誤會(huì)——“無(wú)序”不是指打印出來(lái)不整齊而是指Python不保證、也不依賴元素的物理存儲(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)你寫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)” # 你絕不能寫first_subject list(student_grades.keys())[0] // 這是危險(xiǎn)的依賴提示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)你寫my_set {1, 2, 3}Python做的不是“記住1在前、2在中、3在后”而是“記住內(nèi)存里有一個(gè)位置存著1一個(gè)位置存著2一個(gè)位置存著3”。你無(wú)法用索引my_set[0]訪問(wèn)因?yàn)樗鼔焊鶝](méi)定義“第0個(gè)”是誰(shuí)。它的所有操作——add(),remove(),in判斷——都基于哈希查找時(shí)間復(fù)雜度同樣是O(1)。# 創(chuàng)建空集合必須用 set(){} 是字典這是新手高頻翻車點(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ì)快速按位置訪問(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為提升用戶體驗(yàn)?zāi)J(rèn)保持插入順序CPython實(shí)現(xiàn)細(xì)節(jié)但這不改變其“無(wú)序數(shù)據(jù)結(jié)構(gòu)”的本質(zhì)定義??荚囍腥魡?wèn)“字典是否有序”答“邏輯上無(wú)序”才得分。依賴順序?qū)懘a如取list(dict.keys())[0]在舊版本Python或某些解釋器下會(huì)崩潰。解決所有需要確定順序的場(chǎng)景顯式轉(zhuǎn)換sorted(dict.keys())按字母序或list(dict.items())按插入序僅限3.7且不推薦依賴。現(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]但后者順序不保證慎用。現(xiàn)象3my_dict {a: 1, b: 2}; my_dict[c]報(bào)錯(cuò)KeyError但my_dict.get(c)返回None。原因[]是“強(qiáng)硬訪問(wèn)”找不到就炸.get()是“禮貌詢問(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)存“元組不可變列表可變”——這句話你背過(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的大門。3.1 一切皆對(duì)象三個(gè)身份證缺一不可Python里每個(gè)東西都是對(duì)象它有三張“身份證”標(biāo)識(shí)identity對(duì)象在內(nèi)存中的唯一地址用id()函數(shù)查看。就像你的身份證號(hào)一生不變。類型type對(duì)象的種類用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天然滿足可變對(duì)象list, dict, set不滿足因?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)象寫了一個(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這是約定。它的作用是讓類里的方法能明確知道“我現(xiàn)在操作的是哪個(gè)具體的實(shí)例” 沒(méi)有self方法就不知道自己在跟誰(shuí)對(duì)話。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)系”繼承的核心是讓子類自動(dòng)獲得父類的所有屬性和方法并可以在此基礎(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): # 重寫override父類方法 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ù)寫 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è)父類而是按照方法解析順序MRO去找下一個(gè)應(yīng)該執(zhí)行的類的方法。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è)類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__) # 輸出類似(class __main__.Child, class __main__.Father, class __main__.Mother, class __main__.Grandparent, class object) # Python 3 使用C3線性化算法計(jì)算MRO確保每個(gè)父類只出現(xiàn)一次且子類總在父類之前4.4 常見(jiàn)問(wèn)題排查為什么__init__里不寫super()我的父類屬性就沒(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。原因你重寫了__init__但沒(méi)調(diào)用父類Animal.__init__所以self.name name這行根本沒(méi)執(zhí)行name屬性從未被創(chuàng)建。解決只要重寫了__init__就必須顯式調(diào)用super().__init__(...)來(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í)查看順序?,F(xiàn)象property裝飾器是什么為什么song.length能像屬性一樣訪問(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ì)算邏輯藏在屬性訪問(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è)能錄入、查詢、統(tǒng)計(jì)學(xué)生成績(jī)的系統(tǒng)。它會(huì)用到復(fù)習(xí)材料里所有的核心概念類、屬性、方法、繼承、super()、property、異常處理。每一步都解釋清楚“為什么這么寫”而不是“照著抄”。5.1 第一步定義基礎(chǔ)類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): 添加或更新一門課的成績(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 第二步定義管理類GradeManager用組合代替繼承復(fù)習(xí)材料提到“組合就是沒(méi)有繼承但是用了人家的實(shí)例”。GradeManager不需要是Student的子類它只需要“擁有”一堆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)在我們寫一個(gè)簡(jiǎn)單的交互式主程序讓它跑起來(lái)。你會(huì)看到所有復(fù)雜的邏輯數(shù)據(jù)校驗(yàn)、平均分計(jì)算、錯(cuò)誤提示都被封裝在類里主程序只需調(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}) # 查詢 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__方法名寫錯(cuò)了比如寫成了def init(self):少了個(gè)下劃線或def __init__(self, name):多了一個(gè)參數(shù)。Python只會(huì)自動(dòng)調(diào)用名為_(kāi)_init__且參數(shù)只有self或self加其他必要參數(shù)的方法。解決仔細(xì)檢查_(kāi)_init__的拼寫和參數(shù)。用print(dir(manager))可以查看對(duì)象有哪些屬性確認(rèn)_students是否在其中?,F(xiàn)象manager.add_score(張三, 數(shù)學(xué), 150)沒(méi)有報(bào)錯(cuò)但成績(jī)存了150。原因add_score方法里的校驗(yàn)條件寫錯(cuò)了比如score 100寫成了score 100或者漏掉了or score 100。解決在add_score方法里加一行print(fDebug: trying to set {subject}{score})運(yùn)行看是否進(jìn)入方法然后逐行檢查if條件?,F(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寫錯(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)階路線圖走到這一步你已經(jīng)能讀懂南開(kāi)軟件學(xué)院期末復(fù)習(xí)材料里的大部分內(nèi)容并親手寫出一個(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ì)”的三步走路線每一步都配了具體可練的小任務(wù)。6.1 第一步把“魔法函數(shù)”從“背名字”變成“主動(dòng)本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青久操| 亚洲少妇色图自慰直播| 久草色悠悠在线视频| 亚洲中亚日激情视频| 青青在线视频日韩欧美| 色欲久久综合| 久热99999| 亚洲婷婷丁香在线| 日本国产亚洲一区在线观看| 亚洲人妻熟妇三十三区| 女色综合| 清纯唯美激情四射| 欧美AB在线| 女人双腿搬开让男人桶| 无码视频一区二区| 日韩欧美成人午夜福利| 91亚州欧美| 丝袜 中出 制服 人妻 美腿 中文字幕| 91成人高清在线观看| 久久人妻丝袜一区二区三| 884t在线| 中文字幕欧美丝袜07资源| 国产精品熟女乱伦| 欧美,日韩,中文,另类| 国产操逼视频在线观看| 免费看污网站| 一级二级三级黑人无码| 色眯眯av| 天堂69亚洲精品中文字| 色婷婷综合久久中文字幕雪峰| 美女性91| 中文字幕片| 中文字幕在线免费观看2| 五月综合激情| 国产精品香蕉| 亚洲乱色视频一区、二区在线| 伦理第一页| 乱色视频中文字幕| 欧在线一二区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 日本一区不卡| 九久9热| 亚洲情色无码一区二区三区| 久久无码电影| 亚洲骚逼少妇| 日韩精品99999| 国产内射爽爽大片| 91暧暧| 午夜亚洲WWW湿好大| 91精品人妻一品二品三品| 亚洲色丰满少妇高潮| 新97国产超碰| 园内精品自拍视频在线播放| 嗯嗯啊啊啊啊轻点视频| 无码自拍SM| 欧美日韩制服| 性吧在线视频| 情趣丝袜无码操逼视频| 精品国产乱码久久久兰草影视| 亚洲色图日韩精品| 啊啊啊想要| www.狠狠干.coom | 色综合久久88色综合久久天天| 天天拍天| 插入综合网| 久艾草在线精品视频在线观看| 99色婷婷中文字幕乱色| 一本道综合色图| 97免费视频在线| 五月天激情网图片| 91精品国产91久久福利| 久久久精选| 天天爱天天韩国日本牛牛牛牛| 天天干天天舔| 久久精品超碰| 91女网站| 黄色av一区二区在线| 亚洲色人阁| 久久精品视频久久久| 97在线观看| 成人精品视频| 这里是精品| 人妻日日干| 97国产人人| 激情综合av| 伊人久久婷婷| 精品国产91av一区二区三区| 中文字幕丰满人妻日本| 人妻娇喘 激情视频| 怡红院成人av| 精产国品一区二三产品| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 国产13区| 日本亚洲熟女视频| 国产一区在线免费播放| 欧美少妇熟女| 亚洲国产成人福利在线观看| 国产传媒日韩欧美| 综合熟妇一区二区三区| 中文字幕第23区| 亚洲AV资源| 操人无码| 欧美黄片视频在线观看免费 | 立川理惠无码一区二区| 伊人女女资源在线观看| 17c在线成人免费A片观看| 欧美 亚洲 大香| www99热| 一本精品日本在线视频精品| 怡红院成人av| 东京热精品97综合网| 最新AVzaixian| 91美女中出| 亚洲欧洲综合视频在线| 国产v片在线免费观看| 国产1024在线播放| 黑人精品一区二区在线播放| 国内精品嫩模A∨私拍小视频| 日本在线999| 麻豆传媒一区二区在线观看| 久久久少妇诱惑精品视频| 欧洲一区二区三区免费| 人人搡人人肉久久精品| 99re这里| 啊啊啊啊,啊啊好多水| a片亚洲一本通视频| 成人影 天天操 亚洲| 67914亚洲精品| 色婷婷丁香五月| 日韩三级天堂在线观看| 少妇人妻好深太紧了vr91| 大香蕉乱级| 肏逼视频日本| 伊人久久综合影院精品久久久| 久久久久久久九九九九| 久久亚洲国产成人| 国产精品嫩草影院免费| 久久婷婷综合国际产色怕| 欧美精品久久久久久久久88| 热久久91婷婷| 蘋果手機免費看成人Av| AV天黑人| 欧美天天搞| 久久久久亚洲| 东京热视频网| 欧美强奸乱| 91人妻Pr| 超碰人人乐97| 330Dv国产女人终合视频极品人与兽| 少妇极品熟妇人妻无码| 欧美一级特黄淫片在线观看| 国产一区二区三区白丝| 欧美色综合影院| 五月婷婷大香蕉| 美女露胸露尿口| 日日AV加勒比| 另类欧美色| 日韩高清黄片| 99在线精品视频| 97视频网站在线观看| 91麻豆天美国产| 欲色啪| 天天天肏屄肏屄肏屄欧美欧美| 亚洲男人电影天堂| 不卡av在线中文字幕| 2020中文在线一区二区三区| 伊人久久艹| 超碰公开久久网| 久久久久久久国产| 久久精品国产亚洲av水密被窝| 天天综合亚洲综合| 狠狠五月天| 91成人在线| 校园春色美腿丝袜 | 无码国产精品久久久久| 天天干,夜夜爽| 国产亚洲日本| 俄罗斯及免费在线看| 人妻 中文 日韩| 亚洲AV秘 精品久久老牛影视| 五月丁香激情啪啪| 九九九九日本 | 东北女人| 亚洲天天操| 久草国产在线视频| 亚洲av热热色| 综合亚洲欧美精品日韩?v| 国产97色在线| 欧美日韩狠狠爱| 3P乱轮视频| 9热9热综合网| 99999精品| AV不卡在线| 青青11操操操操操操操操| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 啊啊啊啊啊啊好多水| 国产粉嫩蜜臀av一区二区三区| 伊人国产视频| 黄骗免费网站| 亚洲不卡AV在线| 偷拍新久久| 2018天天干在线视频| 欧美综合第一| 伊人丁香五月婷婷| 大香蕉国产中文自拍| 校园激情狠狠四射| 久久av成人无码免费| 91ise欧美| 91精品国产91久久久久久久久久久久| 丁香五月天激情| 天天情欲宗合网| 无码高清国产AV| 国产精品久久久777| 亚洲AV无码乱码| 亚洲免费人妻在| 91超碰碰在线| 午夜精品探花| 国产一区二区二区按摩精品啪视频| 狠狠操夜夜| 国产精品密臀网在线观看| 日本人妻伦在线中文字幕| 射 色综合| 欧美色院| 黄色不卡视频| 国产日韩欧美亚洲精品95| 激情五月天校园春色网| 精品国产一区二区三区在线播出| 日夜干射色啊| 噜噜噜在线视频| 亚洲一区亚洲天堂| 999岛国大片| 熟女熟妇伦久久影院毛片一区二区| 秋霞免费AV| 五月天九九日国产精品一区二区三区| 婷婷久久网| 78精品在线| 91在线页| 成人乱人伦一区二区| 国产精品一区二区后入| 99re国产中文字幕| 1769一区| 足交视频老司机| 爱av免费| 99婷婷一区二区| 色综合98| 久久国产热视频97电影| 可乐操亚洲蜜911| 亚洲精品丝袜-不卡成人免费……| 狠狠超| 91高跟美女在线播放| 久久精品国产亚洲AV嘿嘿| 一本大道青青| 图色综合网| 搡老人老9丨女老熟人| 天天影视综合色| 97中文字幕色| 秋霞欧美性爰视频| 超碰97人妻免费在线| 天天在线91| 日本中文字幕一区| 亚洲一本色道中文无码aV天美| 天天爽入口| 超踫中文字幕| 伊人五月天激情| 五十路三区在线| 久久久久久久久久精| 色综合天天| 国产精品成人无码a v毛片| 夜夜骑日日| 五月婷婷丁香| 日韩中文字幕视频在线观看| 无码人妻一区二区三区色欲aⅴ| 日本高清一本二本免费不卡| 热热热热日日漂亮永久永久国产日| 色官网在线| 亚洲AV无码乱码| 亚洲色婷婷综合久久久久中文| 性站 | 欧美色图亚州激情| 激情五月天视频| 欧美精品成人在线播放| 欧美大波激情xxxx| 凹凸视频在线一区二区| 97日韩超碰超碰中文字幕| 91原创在线观看| 日韩精品一区的| 男人天堂新| 日本久久999| 精彩视频日韩| 91网站18在线观看| AV中文在线| av日韩在线观看电影| 日本一区二区三区午夜观看| 久久男人的天堂| 亚州欧美另类| 天堂综合网| 综合亚州欧美| 骚货操死你| 中出在线视频| 久久久久久久久久久久九| 久久超碰亚洲人| 五月丁香| 色九九九九久| 熟妇在线视频一区二区| 久久黄色网址| 97资源制服丝袜| 青青草视频这里只有精品| 亚洲操逼网| 99性爱视频| 天堂精品在线| 美女露胸露尿口| 一二三四免费视频| 国内精品不卡无毒99999| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 日本精品一区二区三区四区的功能| 人妻天天爽夜夜爽2| 97超碰免费人人性爱| 青春草A| 爱啪精品一区| 9久9久| 97在线/亚洲| 久草电影网| 日韩专区久久久| AV色女综合| 国产18精品亚洲精品| 国产精品午夜高潮呻吟久久av| 国产尤物AV尤物在线观看不卡| 岛国AB视频| 综合自拍| 美女啊啊啊啊pc| 韩国女主播青草福利视频| 亚洲天堂另类小说男人| 这里是精品| 秋霞午夜视频一区二区| 欧美性综合| 免看60秒涩涩视频| 性一级黄色录像片网站导航| 青娱乐休闲视频在线观看| 色在线综合| 精品高清一区二区三区三州| 国产精品久久久久久久久AV大片| 天天做天天爱天天爽| 天美av在线观看| 国产原创精品| 中文字幕av一区二区三区人妻少妇| 人妻少妇无码 | 天天日老熟妇| 97伪v| 天操天操夜操夜月月年年操操| 中文字幕一区二区三区人妻不卡| 麻豆三极片| 久久av一级av少妇av高潮| 日本精品第一视频在'| 欧美性爱另类综合| 97人人爱人人做人人乐| 亚洲欧美视| 97精品免费视频网站| 久久久久亚洲AV无码专区少妇| 亚洲日韩美女中文字幕乱| 五月天婷婷基地| 中文字幕乱码人妻一区二区三区,99精品| 色超碰综合| 成人无码欧美一级A片狼牙直播| 久久男人天堂| 全球成人中文在线| 亚洲美女30b| 精品女同一区二区三区| 免费啪啪av| 97福利视频| 丰满精品人妻少妇久久字幕| 少妇久久久久久| 无码WWW免费视频网站| 日本不卡三级网在线播放| 国产丝袜高跟美女av免费观看| 男人天堂网址| 亚洲成人综合在线| 天天影视之亚洲综合网| 国产成年女人免费视频播放a| 亚洲制服欧美另类内射| 久久综合激情| 日本精品九九九| 欧美不卡五十路| 韩国一级婬片A片AAAAA| 粉嫩久久久久| 天天干天天操天天操夜夜操天天操| 亚洲精品啪视频| 天天日天天射天天干| 国产精品久久久久久久久久久久久久吹 | 九九视频黄色片| 男人的天堂亚洲| 在线欧美69V免费观看视频| www.99热| 美女高潮国产高清| 51久久夜色精品国产麻豆| 久久久蜜桃一区二区三区| 亚洲欧洲无码97久久精品| 婷婷五月天色网| 国产探花精品在线| 日韩中文字幕宗合在线| 欧亚性爱啪啪| 国产精品乱码久久久、久久| 国产情侣自拍在线播放| 啊啊啊啊啊舒服| 国产绿奴视频在线观看| 99re这里只有精品3| 亚洲情色视频| www.色婷婷.com| 国产精品久久久亚洲第一牛牛_在线观看| 高清成年美女黄网站免费大全| 99精品丰满人妻| 九九热免费国产视频婷婷伊人五月 | 超碰激情808| 婷婷三区| 天天日天天操VV| 97天天在线| 国产97在线播放| 人妖欧美一区二区| 97色碰| 中文一区二区三区影院| 精品国产91内射久久| 亚洲三区视频| 人妻丝袜无 码视频专区| 国模限制级电影| 国产精品久久久蜜臀| #NAME?| 日日AAvv| 日本孕妇一区二区视频操逼免费看| 亚洲欧美日韩免费观看| www成人啪啪18秘 免费| 啊啊啊啊啊操我视频| 天天摸天天插天天日| 日韩人体偷拍| 超碰在97| 男人午夜天堂| 国产 丝袜 欧美中文 另类| 小情侣高清国产在线视频| 五月香婷婷| 91丝袜激情在线| 九九九不卡| 在线洲亚线| 人妻精品视频一区二区三区| 麻豆久久精品亚洲精品88| 日韩美脚一区二区网站| 俺去久久| 超碰调教97| 男人的天堂VA| 亚洲色堂免费视频| 在线色导航| 999色欧美中文字幕| 五月天激情小说| 视频不卡中文字幕| 啊啊啊要高潮了| 96久久精品一二三区色欲| 中文字幕在线免费观看 | 6080YYY午夜理论片在线观看| 歐美性天天| 萌白酱自拍视频| 97久久久久久久久久| 男人亚洲91首页在线| 国产日韩在线播放av| 天天性射网| 欧美婷婷| 熟女色综合久久| 人人妻人人澡人人爽久久av| 91AV天美在线视频| 亚洲精品丝袜-不卡成人免费……| 久久中文字幕一区不卡| 九久9精品| 91色黑人少妇| 婷婷五月天丁香花| 日韩中文字幕精品一区在线| 精…码一二三区| 中文字幕AV片| 亚洲丝袜天堂| 中文字幕五区| 日本三级R| 色就色综合| 色香AV| 色九九综合AV| 欧美一区二区在线资源| 亚洲男人天堂2019| 久久久激情| 91精品女厕偷拍视频| 成年人黄色视频免费| 5252色欧美在线男人的天堂| 欧美日韩222| 99色热| 蜜乳AV网址| 最新av网站在线观看| 91综合网| 国产熟女精品一区二区| 啪啪啪亚欧美视频| 韩国国产欧美情侣视频在线| 成人老鸭窝人人在线视频| 亚洲综合另类| 欧美少妇性乱| 艾草av| 国产av强奸美女| 91在线精品一区二区三区| 欧美—性—交—色| 怡红院成人视频| 成人精品欧洲亚洲| 足交视频老司机| 青青草日本中文字幕| JULIA人妻风俗店中出电影| 欧美成人精品A片免费一区99| 操逼视频免费日韩无码| jizzjizz欧美| 99久久e免费热视| A 天堂| 永久免费观看的毛片的网站| 97爱综合| 七月丁香婷婷| 日本αv| 九月伊人中文字幕| 大奶的诱惑| 欧美一级在线观看成人| 一区二区精品日韩欧美在线观看| 日本三级A片网站com| 中文色综合| 欧美日韩激情无码专区| 欧美成va视频网站| 精品视频久久久久九九九九9999| 国产一区二区三区中文字幕| 97精品国产97久久久久久户外免费| 色综合中文字幕不卡| 免费网站观看www在线观| 天美欧美国产| 熟女露脸激情自拍视频| 96久久久| 黄色电影观看久久9| 国产精品青草综合久久| 射 色综合| 91网站视频在线观看| 日本天堂在线播放| 亚洲男人天堂视频| 亚洲超碰97| 日韩无码精品综合久久| 成人黑料社久久| 精精夜夜| 日本 情色 1区2区3区| 九九九九9999| 香蕉欧美| 色五月综合| 欧美狠狠弄| 大干人妻| 看免费的黄片| 欧美在线视频99| 色欲人妻一区二区在线| 青草地一本线一区二区三区| 特色a在线上| 精品午夜福利国产一区二区在线观看 | 亞洲久久直播| 欧亚综合一卡二卡中文字幕| 国产噜噜噜噜噜久久久久久久久| 超碰地址久久| 亚洲av无线观看| 日本午夜福利视频| 久热大香蕉网站| 三上悠亚在线毛片91| 色综合av男人天堂| 懂色AV中文| 天天爱综合网| 黄色免费网| 开心婷婷五月| 亚洲 中文 欧美 日韩 在线| 国产亚洲精品精AV.| 青青草日韩无码| 青青草久久在线| 天天干18禁| 久久精品性| 日韩 成人 有码| 亚洲精品久久久久毛片A片拉屎 | 快播电影网日韩新片| 日韩av电影成人在线| 91黑丝露脚| 亚洲图片 激情小说| 综合夜夜| 97摸视频| 久久理论字幕视频| 国产精品播放| 大香蕉九九| 色色青青久久| 99久久久er直播网址| 性性欧美| 中文字幕一区二区三区字幕| 91在线限制级| 三级日本一区二区三区| 天天操女人| 天天躁日日躁狠狠躁| 密乳AV免费观看| 操学生天天| 久久久久久久强迫| 无码一区二区三区四区五区六区七区八区九区十区视频 | 中文久久| 色爱综合网| 密臀在线视频| 综合色99| 亚洲97超碰| 亚洲人妻一区二区三区| 国产97在线视频| 91色综| 欧美97色| 天天做日日爱夜夜爽| 久久久精品视频欧州站| 思思在线免费视频| 清纯唯美综合亚洲| AV九九| 777超碰| 日韩成人大片一区二区| 欧成人在线| 精品久久99| 超碰免费人妻在线| 夜夜狼人妻| 国产三级在线现体验区| 久久大陆| 中文字幕精品日韩中文字幕| 97欧美色综合| 色九区| av网站免费看| 色超碰综合| 艹比视频国产精品| JuliaAnn丝袜熟女系列| 少妇蜜汁| 啪啪免费| 992视频一区| 射丝袜高跟鞋99| 中文字幕一二区二三区人妻专区| 亚洲AV人人澡人人爱| 久久激情五月| 日本人妻丰满熟妇久久久久久| 欧美97在线观看| 欧美aa一级片| 亚洲黄色网址| 强奸乱伦Av网| 91九色丨风韵犹存| 熟女丰满人妻一区| 艹精品| 久久老熟女| 久久国产精品91| 午夜AV人气不卡| 国产91美女视频| 亚洲欧美性生活| 久久性爱大全| 国产AAAAAABBBBB| 亚州精品人妻一二三区| 人妻精品4K4K4K4K4| 日韩熟女乱伦中出| 中文字幕一区二区三区人妻不卡 | 亚洲成人在线高清| 超碰97极品9| 九热大香蕉| 国产成人网址| 多毛小伙内射老太婆| 亚洲男人天堂视频| 精品无吗久久| 久久久久人妻| 中文操嬖片。| 无码久久亚洲高清,| 激情婷婷黑人91| 99自拍视频| 亚洲一曲日韩精品| 东北少妇高潮zzzz| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美激情欧美精品| 久99热| 日韩人妻中文视频| 日韩黄片影院| 97超碰色色| 国产中文字幕在线观看| 裸体美女久久久| 人人爱夜夜爱| 久热69九色熟妇97| 18禁网站在线播放| 熟妇xxxxx性春色| 91精片| 91国产丝袜美女| 色大香蕉97N| 天天弄欧美| 天天综合亚在线| 六月色婷婷| 韩国一级婬片A片AAAAA| 综合免费无码中文| 最新岛国大片| 久热在线精品免费观看| 久久精品国产亚洲粉嫩| 日韩欧美麻豆| 国产人妻一区二区三区欧美毛片| 亚洲AV高潮| 亚洲熟女乱色| 91九九九馒头| 亚洲熟妇丝袜在线观看| 嗯~啊~快点 死我视频| 日韩欧美女优电影| 国产久久一区二区午夜| 久久精品色欧美aⅴ一区二区| 国产h片在线观看视频| 一级黄色视频网| 岛国大片国产| 亚洲色图日韩精品| 日本www操操操| 手机在线人成免费视频| 精品九九九九九| 国产精品午夜AV完会免费 | 亚洲第一成人影院色播| 欧美不卡在线一区二区| 欧美亚洲国产91在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 女人的天堂大香蕉网| 91丝袜激情在线| 日韩 人妻 精品| 欧美精品 - 91爱爱| 亚州日韩97| 精品妇操一区二区三区| 婷婷五月天网| 欧美大香蕉在线观看| 免费观看欧美日韩操逼视频| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 免费精品人妻一区二区三| 岛国视频一二三区| 国产中文大片资源中文字幕 | 色女99一级片在线观看| 99久热精品99re6热| 人妻无码一区二区三区久久99| 蜜桃午夜视频一区二区| 偷拍盗拍亚洲色图图片| 欧美中文综合| 中文字幕日韩电影人妻| 亚洲日韩国产欧美综合v| 性一交一乱一交A片久久四色| 日本福利二区视频| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 亚洲欧美一区二区不卡视频播放| 动漫av中文| 国产嫩草精品A88AV| 日韩兔费看黄片| 91狠狠综合| 色官网色综合| 亚洲国产av中文字幕久久| 五月婷婷丁香中文字幕| 中文字幕av色| 欧美综合 站| 中文久久久| 蜜乳AV一区| 人妻久久久久久久久久久久久久久| renqi久久久久久久久久久久| 色第一页| 久热伊人| 青娱乐亚洲自拍| 成人三级片无码| 黑丝少妇麻豆| 亚洲欧美校园| 亚洲国产91精品一区二区久久| 激情久久av一区av二区av| 熟妇视频一区二区三区在线观看| 日韩中文9| 无码久久国产| 99爱在线视频| 亚洲 综合 第一页| 97超碰人人操人人操| 国产精品久久久鸭无码的功能| 狠狠爱综合网| 龙兴卡官方查询| 国产精品不卡av免费在线观看| 亚洲AV成人无码一区二区三区在线观看| 久久久久久亚洲精品中文字幕人妻| 久久久内射良家| 嫩草美女久久| 精品国产嫩穴视频| 东京热毛片调教| 亚洲国产精品无码AV在线| 日本天天吊| 麻豆传媒一区二区在线观看| 综合av社区| 啪一啪免费视频| 亚洲自拍欧美国产首页网曝 | 国产精品经典一卡久久久| www男人天堂| 国产日韩手机视频在线| 中亚精品极乱| 无码人妻一区二区三区四区老鸭窝| 国产一区二区三三视频| 欧美激情视频一区二区三区不卡| 日韩精品一区,二区 九九...老司机| 91精品国产91久久青草| 亚洲欧洲网站免费观看| 婷婷色香| 俞拍久久国应视频| 日韩AV无码中文一区二区| 免费看污网站| 91狠狠| 男人的天堂在线有码| 综合亚州欧美| 免费看日本操逼视频| 中文久久96| 秋霞一级A片黄色视频| 久久综合九九| 人妻久久| 亚洲无线码一区国产欧美国| 超碰97资源网亚洲| 日本黄大片在线观看视频| 久久超碰爱| 亚洲好色人妻| 精品国产精品一区二区| 在线洲亚线| 国产做?爰片久久毛片?片美国| 91伊人久久在线| 久久这里只精品免费福利| 国产欧美第五页| 极品销魂美女一区二区 | 大香蕉伊人亚洲| 秋霞 色色| 久久久久七视频| 国产最新小视频在线播放下载| 射欧美综合| 自拍第一页| 高清成年美女黄网站免费大全| 91在线限制级| 亚洲精品性爱片| 蜜臀无码一区二区| 99热最新| 蜜臀一二三区| 日本天天操| 2024黄色视频| 日本999精品| 99这里只有精品国产| 欧美熟女丝袜| 99视频精品| 日日骚一区二区三区| 欧美刺激色黄片免费看| 俺也射| 调教熟妇 久久久久久| 天天上日日上日韩精品| 欧美青青视频| 五月丁香啪啪网| 亚洲精品国产熟女久久久| 亚洲日韩精品在线播放| 黄骗免费网站| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 好湿好紧视频| 久久久久9久久久久| 欧美日韩另类在线播放| 日本久久999| 激情五月天社区| 亚洲无992tv| 五月天亚洲网| 青青草密桃在线播放| 私人尤物在线精品不卡| 乱子伦一区二区三区国产精品| 日韩婷婷| 国产精品国产自产高清AV| 一牛一区二区三区久久| 99性视频| 欧美丰满少妇xx高潮| 91在线观看,天天综合| 第45页一区二区| 夂久色| 欧美A片中文字幕| 欧美色吧综合| 国内精品伊人久久久久影院会| 清纯唯美亚洲| 天天添天天干电影| 国产精品色片一区二区| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 中文字幕丰满子伦无码专区在线视频最新 | 亚洲乱熟女一区二区| 嗯嗯啊啊用力视频免费| 国产三级日产三级韩国三级 | 操老熟女AV| 中文字幕精品人妻丝袜| 日韩AV片| 人妻熟女av国产网站| 亚洲97成人在线观看| 99在线精品视频| www.人人摸在线视频| 国产精品久久发布| 丁香激情网| 熟女乱伦二区| 日本视频一区二区三区| 亚洲男人久久综合天堂| 天天操妹子| 综合熟妇一区二区三区| 秋霞鲁丝午夜无码一区二区三| 后入 亚洲 美女 射| av大香蕉| 国产成人久久久精品免费AV| 能在线播放的国产三级| 最近2018中文字幕在线高清第一页| 大香蕉人妻久久| 超碰在线成人电影| 加勒比av官网在线| 亚洲色图综合网| 中亚av| 操婷婷逼| 五月天玖玖资源站| 91强热人妻| 日操粉逼逼| 可能人人看人人摸| 亚州熟女乱伦| 日产欧美电影一区二区三区| 成人毛片免费| 国产精品ww久久| 一起草高清无码| AAAA级日本片免费视频| 人妻无一区二区三区| 精品亚洲天堂| 精…码一二三区| 一区二区三区四区理论片| 日韩无码第3页| 久艹视频在线| 就去色综合| 人人澡人人干| 男人天堂电影院| 免费观看日本操逼视频| 欧美亚洲自拍另类人妻| 中文乱码字幕观看视频| 婷婷五月av| 五月丁香综合激情| 久久精品色欧美aⅴ一区二区| 婷婷五月天影院| 99操| 亚洲熟妇自偷自拍另欧美| 人人操天天爽| 亚熟hd视频在线| K8久久久久| 色偷偷色偷偷欧美日韩| 久久亚码| 欧美性高潮| 91成人亚洲色图| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 日韩强奸av| 国产精品久久久久久久AV大片| 一线黄色免费性爱片| 亚洲国产精品有声| 日韩精品永久在线观看| 七久久久| 少妇500双飞99| 啊啊啊操死我了| 亚洲在线A| 啊啊啊啊啊啊啊啊视频| 一区不卡在线观看av| 欧美系列在线一区二区| 东北黄色电影| 在线小视频| 久夜操| 91福利网在线观看| 天天射天天操天天干天天吃2018| 91九色蝌蚪在线观看| 国产成人无码网站在线视频| 色综合色| 刺激精品视频| 国产精品69久久久久孕妇欧美| 日韩无限资源| 岛国片国产成人亚洲播放| 99综合| A啊啊在线观看| 怡春苑东京热| 久久久新亚洲AV| 亚洲操逼视频网站| 婷婷大香蕉| 九九热精彩视频| 日韩欧美~中文字| 91av熟女人妻| 色人久久| 亚洲国产剧情少妇激情| 人妻人久久精品中文字幕| 日韩免费a级毛片无码a∨| 欧美v亚洲v日韩v最新在线二区| 91AV老熟女视频| 色婷婷五月天| 99re在线视频| .精品人妻一区二区三| 久久99亚洲精品久久99果| 老熟妇一区二区三区啪啪| 人妻天堂三区| 超碰在线香蕉| 日韩情色AV| 91爱网| 婷婷亚洲综合| 色综和网| 国产在线能看的你懂的| 国产一级αv免费看片| 成人日韩中文字幕| 九九久久玖玖| 91人妻尻屄视频| 99热亚洲天堂| 一本色道久久综合亚洲二区三区| 金莲网址| 久久综合乱子伦国产免费| 日本布卡一区二三区| 狠狠激情综合狠狠操中文字幕| 欧美色图下一页| 自拍偷拍草一草| 啪啪免费| 中文字幕97色| 国产色综合亚洲色综合吹潮| 91oumei| 精品对白久久不卡| 国产又色又爽又舒服的三级视频| 亚洲男人天堂网久久| 天天综合欧美黑人| 久久欲| 欧美日韩色图片| 久久久久久999| 午夜国产乱伦视频| 午夜精品久久久久| 翔田千里Av在线| 欧美 传媒 麻豆 日韩 偷拍| 伊人操| 国模吧 一区二区三区| 伦理日韩国产久久| 国产一区二区三区导航| 亚洲日韩欧美一区二区| 国产一区二区三区视频在线看| 国产免费久久精品99re韩国| 国模无码人体一区二区三| 欧美精品 - 91爱爱| 强奸乱伦AV一天堂网| 宗合情欲网| 2019天天干天天操| 成人精品欧洲亚洲| 久久久久久久亚洲Av无码| 一区二区三区四区五区高清无码永久视频 | 啊啊啊啊啊啊啊在线| 欧美激情性爱视频网站| 免费网色网站| 秋霞Av理论一级在线| 920日本午夜免费| 日语五十路和六十路亚洲国产精品| av九九| 亚洲欧美第一页| 综合干干干av久久久综合网| 日本黄色精品专区网站| 日韩啪啪啪啪啪| 久操精品| 91超碰人人| 三级日本一区二区三区| 人妻在线大香蕉| 思思在线免费视频| 亚洲欧美综合图片| 丰满欧美少妇| 人人人摸人人| 试看60秒| 69超碰综合| 9国产超碰| 一二三四区电影| 超碰在线1234区| 狠狠干狠狠干| 欧美v亚洲v综合v国产v妖精| 欧美韩国你懂得在线 | 亚洲影院365| 翔田千里无码一区| 欧美激情专区| 成人免费视瓶| 人妻日日干| 亚洲综合影片| 天天躁日日躁狠狠狠躁| 亚洲一区中文字幕| 92性色国产午夜福利在线661| 一线黄色免费性爱片| 激情综合久久| 亚洲色悠悠久久88| 另类图片综合| 把腿张开老子CAO烂你| 天天夜夜久久| 九九热精品视频六| 色成人Www精品永久观看| 韩国午夜理伦三级好看| 欧美日韩99精品麻豆传媒| 日本午夜精品理论片A级APP发布| 啪啪视频亚洲第一| 强奸乱伦免费网站| 免费a在线播放v| 亚洲精品视频二区| 亚洲射综合网| 欧美亚洲韩国视频十五区| 揉揉揉夜夜| 国产强上视频在线观看| 日韩免费人妻色情网站| 中文字幕视频二区| 啪一啪免费视频| 91网站18在线观看| 美女91网址| 黄网在线播放| 综合久久99亚洲人妻中文在线| 欧美72网页| 亚洲视频二区| 91成人在线| 狠狠操狠狠操操| 亚洲人妻av| 欧美少妇性爱网站| 欧美999| 久久久久国产精品人妻aⅴ天堂| 天天爱天天韩国日本牛牛牛牛| 国产精品无码av在线| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 婷婷视频在线免费观看| 96国产精品| 天天天乱色综合全| 九色 人妻 大香蕉| 五月天丁香网| 欧美日日夜夜| 1024久久高清视频| 狠狠干狠狠干| 日本三级R| 国产精品美女在线一区| 影音先锋每日最新资源在线观看 | 五月丁香啪啪| 欧美疯狂做爰xxxx| 干婷婷综合网| 日韩色欲久久一二三四区| 激情黄色片在线观看| 另类图片欧美激情综合| 欧美91精品国产自产| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 色婷婷成人综合| 乳欲人妻办公室奶水| 国产精品女生av| 中文字幕蜜乳av| 91内射| 欧美色图91| 亚洲男人的天堂va亚洲男人社| 97在线/亚洲| 国产精品禁久久久精品| 男人成人黄色视频在线观看免费下载| 欧美一级专区免费大片| 日韩美女,国产传媒,视频一区| 中文字幕在线观看网页| 青青草日逼视频| 天天干天天日天天射黄色| 一本一道人妻久久一区二区三区| 91蜜臀熟女| 久久久久久久极品香蕉视频| 999在线电影香蕉| 大香蕉伊人一区在线观看| 91色碰| 婷婷色香| 97精品国产97久久久久久免费| 美女的肌被草喷水视频| 九九热精彩视频| 东京热大香焦| 夜夜春夜夜操| 九九九九国产| 清纯唯美综合| а√天堂资源官网在线资源| 岛国色情视频在线观看| www.91逼逼.com| 亚洲色图亚洲无码强奸乱伦| 久久九九视频九九视频| 国产三区免费在线观看| 国产中文字幕在线点播| 一本久道在线综合视频| 亚洲欧洲网站免费观看| 91原创在线观看| 亚洲美乱| 精品亚州18| 久久久久久久久久久久97 | 亚洲一区二区精品福利| 九九成人视频|