日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

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

Python核心概念解析:可變性、無序性與對(duì)象模型 簡(jiǎn)介本資源是南開大學(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)存圖示與語法速查片段便于復(fù)習(xí)查閱與重點(diǎn)標(biāo)注。目前已有1200人學(xué)習(xí)下載是兼顧理論深度與應(yīng)試實(shí)用性的高質(zhì)量期末沖刺資料。1. Python期末復(fù)習(xí)不是背題庫而是搞懂“Python怎么想問題”一份南開軟院學(xué)生親測(cè)有效的入門路徑你是不是也這樣翻開《Python期末復(fù)習(xí)超全》這個(gè)標(biāo)題第一反應(yīng)是——“又來一套題背完就忘考完就丟”別急這份材料根本不是傳統(tǒng)意義上的“題庫”它是一份用真實(shí)課堂節(jié)奏打磨出來的思維導(dǎo)圖式復(fù)習(xí)指南。它不從“print(Hello World)”開始教而是直接帶你站在南開軟件學(xué)院老師出題的視角看為什么字典和集合必須無序?yàn)槭裁丛M能當(dāng)字典的key而列表不能為什么list.sort()沒有返回值但sorted()卻有這些問題背后不是規(guī)則而是Python對(duì)內(nèi)存、對(duì)象、引用的真實(shí)處理邏輯。它適合誰適合那個(gè)剛學(xué)完循環(huán)和if語句、一看到“MRO算法”就頭皮發(fā)麻、抄了十遍super()還是不知道它在找誰的你也適合那個(gè)已經(jīng)會(huì)寫爬蟲但總被面試官問“a [1,2]; b a; b.append(3)之后a變沒變”給問懵的新手。這不是讓你“多做一道題”而是幫你把散落的知識(shí)點(diǎn)焊進(jìn)一個(gè)叫“Python世界觀”的底座里——底座穩(wěn)了新代碼來了你第一反應(yīng)不再是“這行報(bào)錯(cuò)我搜過但看不懂”而是“哦它在找這個(gè)對(duì)象的__enter__方法”。2. 先搞懂一個(gè)概念Python里“無序”不是亂序而是“不靠位置說話”字典與集合的本質(zhì)區(qū)別很多新手卡在第一步為什么老師反復(fù)強(qiáng)調(diào)“字典和集合是無序的”可我print(dict)明明看到鍵值對(duì)排得整整齊齊這里藏著一個(gè)關(guān)鍵誤會(huì)——“無序”不是指打印出來不整齊而是指Python不保證、也不依賴元素的物理存儲(chǔ)順序來定義它們的身份和行為。我們拆開來看。2.1 字典靠“鍵”查不靠“第幾個(gè)”想象你有一本紙質(zhì)通訊錄里面按人名拼音排序。你找“張三”翻到P頁找“李四”翻到L頁。你從不關(guān)心“張三”是第37頁、“李四”是第21頁——你只認(rèn)名字。字典就是這本通訊錄的電子版。它的核心能力是O(1)平均時(shí)間復(fù)雜度的查找靠的是哈希表Hash Table當(dāng)你寫my_dict[name]Python立刻把name算出一個(gè)數(shù)字哈希值跳到內(nèi)存里對(duì)應(yīng)的位置取值完全跳過了“從頭數(shù)第幾個(gè)”的過程。所以哪怕你先my_dict[z] 100再my_dict[a] 1它內(nèi)部存儲(chǔ)順序可能反著來但你調(diào)用my_dict[a]永遠(yuǎn)秒出結(jié)果。這就是“無序”的價(jià)值犧牲順序換取速度。# 看似有序?qū)崉t偶然 student_grades {math: 85, english: 92, science: 78} print(student_grades) # 可能輸出 {math: 85, english: 92, science: 78} # 但這順序不是語言保證的Python 3.7雖保持插入順序?yàn)榧嫒菪约拥膬?yōu)化但邏輯上它仍是“無序結(jié)構(gòu)” # 你絕不能寫first_subject list(student_grades.keys())[0] // 這是危險(xiǎn)的依賴提示list(dict.keys())得到的列表順序在Python 3.7中確實(shí)是插入順序但這屬于實(shí)現(xiàn)細(xì)節(jié)不是語言規(guī)范??荚嚮蛎嬖囍腥艨疾臁白值涫欠裼行颉睒?biāo)準(zhǔn)答案仍是“邏輯上無序”因?yàn)樗脑O(shè)計(jì)目標(biāo)從來不是維護(hù)順序而是高效查找。2.2 集合去重的終極形態(tài)連“位置”都不給你留集合更進(jìn)一步。它連“鍵”都不需要只要求元素唯一且可哈希。它的底層也是哈希表但只存“鍵”沒有“值”。所以當(dāng)你寫my_set {1, 2, 3}Python做的不是“記住1在前、2在中、3在后”而是“記住內(nèi)存里有一個(gè)位置存著1一個(gè)位置存著2一個(gè)位置存著3”。你無法用索引my_set[0]訪問因?yàn)樗鼔焊鶝]定義“第0個(gè)”是誰。它的所有操作——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)是否有序有序位置即身份邏輯無序鍵即身份邏輯無序元素即身份是否可索引?list[0]?dict[0]報(bào)錯(cuò)?set[0]報(bào)錯(cuò)是否可重復(fù)? 允許重復(fù)元素? key不能重復(fù)值可重復(fù)? 元素絕對(duì)唯一核心優(yōu)勢(shì)快速按位置訪問、切片快速按鍵查找、插入、刪除快速去重、成員判斷、集合運(yùn)算2.4 常見問題排查為什么我的字典“看起來有序”卻報(bào)錯(cuò)現(xiàn)象1我用for k in my_dict:遍歷輸出順序和我插入的一樣但老師說字典無序我該信誰原因Python 3.7為提升用戶體驗(yàn)?zāi)J(rèn)保持插入順序CPython實(shí)現(xiàn)細(xì)節(jié)但這不改變其“無序數(shù)據(jù)結(jié)構(gòu)”的本質(zhì)定義??荚囍腥魡枴白值涫欠裼行颉贝稹斑壿嬌蠠o序”才得分。依賴順序?qū)懘a如取list(dict.keys())[0]在舊版本Python或某些解釋器下會(huì)崩潰。解決所有需要確定順序的場(chǎng)景顯式轉(zhuǎn)換sorted(dict.keys())按字母序或list(dict.items())按插入序僅限3.7且不推薦依賴?,F(xiàn)象2my_set {1, 2, 3}; print(my_set[0])報(bào)錯(cuò)TypeError: set object is not subscriptable。原因集合不支持索引操作符[]因?yàn)樗鼪]有“第0個(gè)”的概念。它的設(shè)計(jì)哲學(xué)是“只問‘有沒有’不問‘在哪兒’”。解決若需按順序處理先轉(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)硬訪問”找不到就炸.get()是“禮貌詢問”找不到就給個(gè)默認(rèn)答案默認(rèn)None。這是Python“請(qǐng)求寬恕而非許可”EAFP哲學(xué)的體現(xiàn)。解決處理可能不存在的key時(shí)優(yōu)先用.get(key, default_value)避免try/except過度使用。現(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是展開”。要加多個(gè)用my_list.extend([4, 5])結(jié)果是[1, 2, 3, 4, 5]。3. 別再死記硬背了理解“可變”與“不可變”才能真正看懂Python的內(nèi)存“元組不可變列表可變”——這句話你背過但當(dāng)a (1, 2); b a; b (3,)后a還是(1, 2)而a [1, 2]; b a; b [3]后a卻變成了[1, 2, 3]你是不是瞬間懵了這背后不是語法玄學(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)鍵來了變量如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依然指著原來的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í)通過a或b去修改箱子里的東西比如a.append(3)箱子本身沒換只是里面多了個(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沒變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 常見問題排查為什么我的函數(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ū)ο缶幊獭甭犉饋砀叽笊系赑ython期末復(fù)習(xí)里它最樸素的目標(biāo)就一個(gè)把數(shù)據(jù)屬性和操作數(shù)據(jù)的代碼方法打包在一起讓這個(gè)包對(duì)象能自己管理自己的狀態(tài)。self不是語法糖它是這個(gè)包的“內(nèi)部身份證”super()不是魔法它是這個(gè)包在家族譜系里“向上找長輩幫忙”的聯(lián)絡(luò)方式。我們從一個(gè)具體例子出發(fā)。4.1self對(duì)象的“我”不是關(guān)鍵字是約定self只是一個(gè)形參名你可以叫它this或me但所有人都叫self這是約定。它的作用是讓類里的方法能明確知道“我現(xiàn)在操作的是哪個(gè)具體的實(shí)例” 沒有self方法就不知道自己在跟誰對(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ù)完全沒受影響4.2 繼承不是“抄代碼”是“建立家族關(guān)系”繼承的核心是讓子類自動(dòng)獲得父類的所有屬性和方法并可以在此基礎(chǔ)上添加新功能或修改舊功能。它建立的是一種“is-a”是一個(gè)關(guān)系Dogis-aAnimal。南開復(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屬性無需重復(fù)寫 dog Dog(Buddy) cat Cat(Whiskers) print(dog.speak()) # Buddy barks: Woof! print(cat.speak()) # Whiskers meows: Meow!4.3super()家族里的“找長輩”協(xié)議解決鉆石繼承難題當(dāng)繼承鏈變長比如class Medium1(Father, Mother):而Father和Mother又都繼承自Grandparent就可能出現(xiàn)“Grandparent.__init__()被調(diào)用兩次”的問題鉆石繼承。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 常見問題排查為什么__init__里不寫super()我的父類屬性就沒了現(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__但沒調(diào)用父類Animal.__init__所以self.name name這行根本沒執(zhí)行name屬性從未被創(chuàng)建。解決只要重寫了__init__就必須顯式調(diào)用super().__init__(...)來初始化父類部分?,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找沒找到再到B找找到了就執(zhí)行B.method不再繼續(xù)往下找C。解決理解MRO是調(diào)試多繼承的關(guān)鍵。用ClassName.__mro__隨時(shí)查看順序?,F(xiàn)象property裝飾器是什么為什么song.length能像屬性一樣訪問但song.set_length(100)卻要調(diào)用方法原因property把一個(gè)方法偽裝成了屬性。song.length觸發(fā)的是length這個(gè)property方法它內(nèi)部可以做任何邏輯比如檢查合法性但調(diào)用者感覺不到。length.setter則定義了song.length 100時(shí)該做什么。解決這是封裝的利器。把數(shù)據(jù)校驗(yàn)、計(jì)算邏輯藏在屬性訪問背后對(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é)生成績管理系統(tǒng)光看概念容易飄現(xiàn)在我們動(dòng)手做一個(gè)極簡(jiǎn)但完整的項(xiàng)目一個(gè)能錄入、查詢、統(tǒng)計(jì)學(xué)生成績的系統(tǒng)。它會(huì)用到復(fù)習(xí)材料里所有的核心概念類、屬性、方法、繼承、super()、property、異常處理。每一步都解釋清楚“為什么這么寫”而不是“照著抄”。5.1 第一步定義基礎(chǔ)類Student封裝數(shù)據(jù)和基本行為我們要讓每個(gè)學(xué)生對(duì)象自己記住自己的名字、各科成績并能算出自己的平均分。這正是self和屬性的用武之地。class Student: def __init__(self, name, scoresNone): 初始化學(xué)生 :param name: 學(xué)生姓名str :param scores: 成績字典如 {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返回成績字典的副本防止外部直接修改 return self._scores.copy() # 返回副本保護(hù)內(nèi)部數(shù)據(jù) def add_score(self, subject, score): 添加或更新一門課的成績 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}, 成績: {self._scores}, 平均分: {avg:.1f}解釋這里用了property保護(hù)scores外部只能讀不能改add_score里做了輸入校驗(yàn)__str__讓print(student)輸出可讀信息。這些都是面向?qū)ο蠓庋b的體現(xiàn)。5.2 第二步定義管理類GradeManager用組合代替繼承復(fù)習(xí)材料提到“組合就是沒有繼承但是用了人家的實(shí)例”。GradeManager不需要是Student的子類它只需要“擁有”一堆Student實(shí)例來管理。這就是組合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é)生添加成績 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(暫無學(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)單的交互式主程序讓它跑起來。你會(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}) # 添加成績 try: manager.add_score(張三, 數(shù)學(xué), 85) manager.add_score(張三, 英語, 92) manager.add_score(李四, 數(shù)學(xué), 78) manager.add_score(李四, 英語, 88) print(? 成績添加成功) except ValueError as e: print(f? 添加成績失敗: {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é)生添加成功 ? 成績添加成功 --- 學(xué)生詳情 --- 學(xué)生: 張三, 成績: {數(shù)學(xué): 85, 英語: 92}, 平均分: 88.5 學(xué)生: 李四, 成績: {數(shù)學(xué): 78, 英語: 88}, 平均分: 83.0 --- 張三的平均分: 88.5 --- 全班平均分: 85.8 ?? 捕獲預(yù)期錯(cuò)誤: 學(xué)生 王五 不存在5.4 常見問題排查為什么我的GradeManager報(bào)錯(cuò)GradeManager object has no attribute _students現(xiàn)象運(yùn)行main()時(shí)manager.add_student(張三)報(bào)錯(cuò)說GradeManager沒有_students屬性。原因最可能的原因是GradeManager.__init__方法名寫錯(cuò)了比如寫成了def init(self):少了個(gè)下劃線或def __init__(self, name):多了一個(gè)參數(shù)。Python只會(huì)自動(dòng)調(diào)用名為__init__且參數(shù)只有self或self加其他必要參數(shù)的方法。解決仔細(xì)檢查__init__的拼寫和參數(shù)。用print(dir(manager))可以查看對(duì)象有哪些屬性確認(rèn)_students是否在其中?,F(xiàn)象manager.add_score(張三, 數(shù)學(xué), 150)沒有報(bào)錯(cuò)但成績存了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但我知道他有成績。原因get_student_average方法里self._students[name]取到了學(xué)生對(duì)象但調(diào)用get_average()時(shí)Student.get_average()里self._scores是空字典??赡躠dd_score沒成功執(zhí)行或者_(dá)scores字典的key寫錯(cuò)了比如存了shuxue但查數(shù)學(xué)。解決在Student.get_average里加print(fDebug scores: {self._scores})看實(shí)際存了什么。6. 下一步學(xué)什么從“會(huì)用”到“會(huì)設(shè)計(jì)”一份南開軟院風(fēng)格的進(jìn)階路線圖走到這一步你已經(jīng)能讀懂南開軟件學(xué)院期末復(fù)習(xí)材料里的大部分內(nèi)容并親手寫出一個(gè)有封裝、有校驗(yàn)、有錯(cuò)誤處理的小系統(tǒng)。但這只是起點(diǎn)。真正的Python高手不是知道多少語法而是能在面對(duì)一個(gè)新需求時(shí)快速判斷“該用什么結(jié)構(gòu)、該封裝到哪里、邊界在哪”。下面是我當(dāng)年跟著南開導(dǎo)師做課程設(shè)計(jì)時(shí)總結(jié)出的、從“會(huì)用”躍遷到“會(huì)設(shè)計(jì)”的三步走路線每一步都配了具體可練的小任務(wù)。6.1 第一步把“魔法函數(shù)”從“背名字”變成“主動(dòng)本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青青草五月天| 天天射天天操天天干天天吃2018| 成人无码在线超碰网| 激情五月天网| 四虎免费在线播放| 亚洲AV无码久久久国产精品| 亚洲欧美综合网站| 中文字幕一区电影在线观看| 青女在线| 69少妇一区二区| 色哟哟国产精品免费网址| 人人操人人肉久久精品| 欧美色图片91| 亚洲国产成人7777| 99色骚| 黑人精品XXX一区一二区| 厕所偷拍在线| 91精品微拍福利| 怡红院视频在线| 蜜桃久久久久久久久久久久| 清纯唯美综合亚洲| www99热| 日本 情色 1区| 国产精点久久久成人| 伊人久久亚洲中文字幕不卡| 久久免费少妇| 亚州少妇| 18禁看网站一区| 欧美少妇大量自拍视频在线观看| 亚洲视频中文一区| 久久精品一区| 欧美精品日韩久久久九| 欧美日韩系列| 狠狠久久亚洲欧美专区| 色汉综合| 亚洲情色综合网| 九月婷婷久久| 91久久青青草原精品| 久久精品一区二区三区不卡| 老司机福利青青草| 97欧美久久久久久久| 久久91精品国产9丨久久分亭| 操淫穴亚洲五月丁香 | 熟妇视频一区二区三区在线观看| 亚洲欧洲自拍图片专区满春格| 色好看av| 久久三| 国产吹潮女在线观看| 免费一级欧美片片线观看| 78操B| 中文字幕艹艹| 久草国产在线视频| 熟女91网站| 97激情97激情| 激情五月婷婷综合| www久久国产精品| 亚洲凸凹超碰成人| 久久女婷| 中国国产精品一区视频| 中文字幕乱亚洲美女精品一区| 国产最新AV| 少妇一区二区三区高速| 国产自偷| 亚洲A色| 18禁美女裸体无遮挡啪啪| 日韩天天综合| www.高清无码诱惑一区.com | 大香蕉久| 熟妇人妻一二三区免费| 久久久久久久一级黄色打同平台| 超97在线精品视频| 99re9| 男人的天堂日本东京热| 综合网欧美在线| {男男暴菊gay无套网站| 91高潮| 国模不卡一本二本三电影| 日韩乱伦视频| 亚洲一区操| 亚洲91射| 成人热久久精品| 日本中文字幕在线电影| 家庭乱伦性爱av| 欧美综合网A| 操亚州| 色五月婷婷麻豆在| 久久久久久精品免费看A级| 人妻三级在线中文字幕| 天操天操夜操夜月月年年操操| 中文字幕少妇色 | 亚洲少妇视频| 男人天堂无码| 国产九九九九九九| 天天看高清麻豆| 熟妇熟女视频一区二区三区| 顶级丝袜熟女一区二区三区| 强奸抽插av| 国产欧美另类久久久精品课程| 精吧天堂| 一区二区三区成人 | 欧美人妖内射| 久热99999| 欧美亚洲宗合色性图| 天天看综合网| 精品国产一区二区三区久久久蜜臀 | 人人操人人精品影片| 综合网久久| 日韩素人无码一区二区三区三州| 青青草天天亲夜夜操网| 探花激情视频| 手机看片1024你懂的国产| 超碰无码加勒比| 男人天堂网址| 男女啪啪网站免费视频| 九九草| 中出91视频| 激情四射婷婷六月天| 久久精品老司| 婷婷五月天网| 免费黄色A片| 精品人妻中文字幕4399| 国产精品久久天天干| 日韩精品在线视频,日韩精品……| 色九九久九九| 夜夜爽夜夜操| 久久久久夜夜夜夜| 久久丁香久草综合网| 超碰97中文| 亚洲男人天堂AV| 久久久涩| 91精品91久久久中77777| 欧美啪啪天堂| 精品97久久| 欧美性色欧美| 极品销魂美女一区二区| 91性高朝久久久久久久久| 思思热一热婷婷热一热| 午夜男女爽爽大片免费观看| 欧州一区二区三区四区| 影音先锋每日最新资源在线观看| 国产69精品久久久久99尤物| 国产综合网站在线播放| 韩国三级理论在线| 激情九月婷婷| 操操AV电影| 亚洲国产欧美日韩人妻日中文| 麻豆2区1区天美| 99青草| 爱啪精品一区| 熟女露脸激情自拍视频| 国产在线观看一区二区三区| 国内毛片无遮挡国产| 亚洲黄色网址视频| 丰满人妻一区二区三区四| 综合色图亚洲欧美| 大香伊人在线一区| 亚洲日本天堂| 色97干| 91天天| 岛国大片国产| 色五月综合网| 99re只有精品| 久久人体一区二区| 亚洲日韩精品一区二区| 台湾成人无码AV| 欧美日韩精品一区二区三区高清| 国产高清无码一区二区三区四区皇冠| 男人天堂2019亚洲| 屁股久久久久久久久| 丝袜亚洲综合| 综合熟妇一区二区三区| 久久午夜鲁丝片| 国产一区在线观看无码AV| 麻豆国产96在线| 色婷婷久久| 精品一区二区三区最新| 亚洲交换| 一级AV性爱| 国语av最新自产拍在线观看| 久久久影院| 日本好吊色视频| 色色九区| 成人精品在线| 日韩人人精品| 精品国产一区二区三区在线播出| 国产精品秘 福利姬在线观看| 天天色悠悠激情| www.男人天堂| 欧美性xxxxx狂欢| 在线看免费无码AV天堂的| 内射中出日韩在线观看视频| 久久久月天| 啪啪啪东京| 夜色五月天| 91无码人妻| 亚洲国产精品无码AV久久| 亚洲人妻中文高清| 手机不卡视频不卡在线一二三区| 精品女同一区二区三区| www.99中文字幕| 大香蕉在线视频15| 人人摸人人入| 久久草大香蕉| 欧美色图片色哟哟| 女人被添高潮免费视频| 躁躁日曰躁2020| 亚洲男人天堂AV| 国产极品美女高潮无套在线观看 | 草b在线 | 色翁荡息又大又硬又粗又爽| 欧州色图区| 四虎av在线| 91三级理论片播放器| 99操| 成人麻豆av电影网站| 国产白领连续中出在线观看| 日日爱99| 久热69九色熟妇97| 精品天堂| 天天干,天天日| 999熟女精品| 日韩高清黄片| 男人网站婷婷| 国产绿奴视频在线观看| 美腿丝袜高跟网免费视频免费视频| 色97干| 九九色图| 美女91网| 亚洲色婷婷| 91M一社| 欧美日韩性爱操大逼| 久久久内射良家| 国产亚洲美日韩Aⅴ中文字幕无码成人| 一区二区三区四区久久视1| 久久妇| 欧美一区二区三区入口| 大香蕉手机在线| 国产1769在线| 素人伊尹大香蕉免费下载视频| 玖玖玖玖精品国产剧情| 国产农村妇女毛片精品久久| 久久久A∨| 亚洲成成熟女人综合一区二区| **一级毛片国产| 九久久九九久视频| 天天摸,夜夜摸| 天天操天天舔| 亚洲欧洲小说图片视频| 一区二区三区亚洲| 在线啊啊啊| 黄片无码在线制服| 97啪啪| 九九九网页| 超碰色综合| 久久啊哟| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 97欧美性爱| 97视频新免费| 色丁香五月婷婷| 日韩欧美麻豆| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 伦伦成年午夜免费视频| 78精品| 国产亚洲 中文欧美久久| 日韩欧美性爱电影在线观看| 色情亚洲日本成人| 亚洲黄色a级片| 国产热av| 久久国色天香香蕉| 91人妻最真实刺激绿帽| 大干人妻| 热久久精品| 欧美一区二区三区互相| 欧美天堂亚洲电影院一区在线播放| 免费作爱一级视频| 久久亚洲一区女同性恋中文字幕 | 九九热视频这里只有精品| 九九干| 色色97爱| 韩国女主播青草在线| 午夜国产综合视频在线观看| 欧美性天天影院| www.狠狠| 国产精品日韩在线一区| 伊人四虎综合| 亚州操操穴网| 乱欲一区二区| 欧美精品69性爱| 色偷综合| 人妻激情另类| 精品欧美老熟女一二区| 精品成人女人久久| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 嫩草 人人网精品| 久久久久久久久久8888| 欧美精品23| 久久久精| 中文字日本乱码| 天天肏夜夜肏| 色欲三区| 欧美黑人熟妇精品91| 粉嫩AV一区夜夜嗨| 精品国产精品一区二区| 肉动漫无遮挡h在线观看| 天天色踪合| 精品久久久无码| 日韩欧美亚洲一区二区三区影院| 久久男人天堂| 黑人性暴力毛片| 屌妞视频久久久久久久| 大香蕉碰| 亚洲精品aa久久伊人| 色婷婷国产精品一区在线观看| 午夜精品99久久久久传媒| 三级网色| 亚洲成人一区二区精品| 91香蕉视频在线观看免费| 亚洲欧美97√| 97欧美久久久久久久| 日韩AV色图| 国产激情久久久| 中文字幕,人妻,日韩| 狼人狠干| 欧美啪啪天堂| 欧美乱妇狂野欧美在线视频| 综合网欧| 人人摸人人干| 好淫网一二三视区| 五月天综合网| 日韩不卡a级视频专区| AV一区观看| 亚洲一区二区三区婷婷| 欧美色蜜桃97| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 久久超碰98| 99re在线观看| 精品国产国产AV| 偷拍 亚洲| 九九色婷婷| 伊人激情五月天一区二区 | 精品视频在线观看精品| 色97干| 99re久久| 97资源久久| 香蕉精品二区二区 | 操逼片国产| 精品欧美老熟女一二区| 超碰色大香蕉| 人妖欧美一区二区| 9久9久| 亚洲熟女一区二区| 精品免费成人久久| 久久激情视频| 91天天综合在线| 99视频自拍区| 日本幼女18+| 亚洲不雅视频1区二区| 欲色综合| 欧美裸体美女日麻屄| 狠狠爱综合网| 日韩视频中文字幕| 人人贴人人摸| 日本高清_区二区三区| 精品亚洲国产成人精品| 一区二区影院| 亚洲精品a人片在线观看视| {男男暴菊gay无套网站| 欧美日韩免费性爱| 立川理惠无码一区二区| 五月激情啪啪| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 天美麻豆精品视频99| AV 少妇 人妻 偷拍| 91在线色综合| 三级片大波波| 久久精品中文字幕女同| 日韩十八禁| 97色97干| 成人小说视频在线精品欧美| 影音先锋少妇| 强免费黄色网址| 狠狠操狠狠插| 大香蕉中文aV在线| 九九国产| 色97欧美| 伊人久久综合影院精品久久久| 黄色视频60分钟| 艹比视频国产精品| 五月婷色| 日韩成人午夜精品久久高潮| 一二视频神马久久传媒| 亚洲 在线| 最新国内自拍av免费| 色色色欧美| 99丝袜福利在线播放| xxx亚洲午夜天堂| 日韩不卡网操逼中文字幕日韩| 超碰偷拍| 国产h小视频在线观看免费| 精品国产人成在线| 国产av尤物| 色五月天AV| 久热这里| 中文字幕一区二区免费在线| 大香网伊人久久综合| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 91欧美情色| 91大神精品长腿在线观看网站| 视频国产精品未满十八禁止在线观看| 婷婷色色五月天| 91丝袜激情在线| 日本大香蕉综合网红本杳社区| 日本爽爽爽爽爽爽免费视频| 另类小色呦| 夫妻四区五区六区| 啊啊啊啊啊啊在线| 性爱免费视频成人| 91老司机在线视频免费观看| 亚洲少妇激情一区二区三区| 亚洲无码国产探花在线观看| 日本三级中国三级99人妇网站| 天美传媒Av在线| 国产免费内射视频| 大香蕉强奸乱伦| 国产精品久久久视频| 青青草华人在线欧美在线| 欧美裸体美女日麻屄| aaaa少妇高潮大片| 91丝袜美腿网站| 国产激情在线| 婷婷精品视频| 日本加勒比无码专区一二三| 秋霞成人做爱| 精品人妻一区二区三区-国产| 亚洲熟女诱惑| 性爱乱伦网址| 青青草色插素人| 亚洲日韩天堂| 91操碰| avav青青草久久夜| 伊人网综合在线视频| 东京热一区二区三区四区五区六区| 精品日日人妻| 欧美人人AAA| 五月婷婷青青草娱乐伊人| 粉嫩av久久一区二区三区| 啊a一区在线| 亚洲熟女诱惑| 玖玖97综合| 天堂综合网| 婷婷伊人綜合中文字幕| 青青草五月份天| 久久久麻豆精品| 免费99精品国产自在在线| 少妇人妻好深太紧了vr91| 久久精品视频久久久| 网友自拍第1页| 日本午夜久久电影| 清纯唯美综合亚洲| 日韩成人网址| 9久9久| 五月天丁香网| 黄片www视频免费| 青青操97| 东北少妇高潮zzzz| 佐山爱中文字幕| 国产亚洲精品美女久久久| 三上制服丝AV| 免费精品人妻一区二区三| 欧亚日韩三区| 99国产精品视频尤物| baiduhicn.com。| 免费一级a毛片久久久久久鸭绿欲| 中文字幕88av在线| 午夜啪啪片| 免看60秒涩涩视频| 色婷网| 中文字幕黄色一起草| 99视频精品| 亚洲交性| 欧美另类色| 青青操网| 国产人妻精品一区二区三区秋霞| 香蕉久久AⅤ...| 久久久久深夜无码| 五月天伊人| 91美女在线观看| 亚洲不卡不卡中文字幕不卡 | 久久久久国产一区二| 香港久久久| 国产精品九九九| 九九九偷拍| 黄色一区三区| 97超碰欧美精品| 国产一国产一级毛片古装| 国内一级精品| 人妻天天爽天天爽三区| 能在线播放的国产三级| 天天做天天爱| 国产视频一区二区在线观看| 久久一区,青青青青草视频在线播放| 亚洲情色在线| 欧美宗合网| 亚洲av综合色区图片亚洲| 欧美综合娱乐久久| 97人人操人人干| 爱干爱射网啊啊啊| www.成人无码| 性无码专区2020| 美国一区二区三区视频| 欧美乱色| 中文字幕人妻丝袜乱一区三区| 被窝影院午夜看片无码| 在线中文字幕极品av| 亚洲va综合va国产va中文| 成熟熟女国产精品一区二区| 欧美国产精品久久九九| 丁香五月婷婷基地| 黄久久| 国产精品点击进入在线影院| 天天综合AV| 九九热只有精品| 日亚韩精品视频二区三| 性色国产东北露脸精品视频| 夜夜精品视频一区二区| 国产女人高潮嗷嗷嗷叫小说| 亚洲五区熟女| 欧美一区二区三区互相| 91亚州日韩高清| 欧美色图99| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久久久久久久国产a∨| 91l欧美在线| 国产精品亚洲无码| 日韩精品人妻中文字幕久久久| 大香蕉欧美| 九九精品美女高溯喷水| 日韩精品资源专区二区| 欧美狠狠操| 日韩性爱一级片| 69综合网| 啪啪免费| 久久久青青草| 天美传媒av 在线| 国产操逼网站亚洲一级黄色| 欧美老妇综合网| 九九久久一区二区伦理| 囯产精品强| 后入式在线免费观看60秒| 草草电影院| 日韩欧美丝袜诱惑| 国产在线激情视频| 毛片麻豆91糖心精品毛情片| 婷婷久久久| 1769成人国产精品视频| 欧美夜夜骑视频| 国产精品蜜乳AV| 欧美性性性| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 中文字幕免费看| 看日韩美女二区三区免费操逼视频| 高精欧美色| 九九久久久久久爱| 92人人操人人| 岛国片在线播放| 人人操人人精品影片| 小少妇| 精品毛片av一区二区| 美女t无毒不卡不卡| 精品国产72| 五月丁香色综合| 在线色导航| 超碰在线一区二区| 青青草一本道福利视频| 久久久久久性爱视频| 女人高潮大叫一级毛片| 国产精品 午夜福利| 东京热男人的天堂精品| 久久久96| 97久久久久| 超碰偷拍| 日韩中文字幕2020| 亚洲人在线成线成人| 五月天婷婷综合网| 亚洲操逼无码| 大香蕉强奸乱伦| 丁香五六月啪啪| 2020中文字幕在线观看| 中文字幕1区2区| 国产白领连续中出在线播放| 亚洲精品久久久久久久久豆丁网| 日本中文字幕在线电影| 国产午夜激片Av毛片不卡| 国产成人亚洲精品无码最新在线| 97欧美在线| 久久女人| AV中亚| 大香蕉2017| 亚洲好色人妻| 校园春色美腿丝袜 | 亚洲色图尤物视频 | 香蕉免费一区二区三区不读| 久久草视频污视频| 日本顶级天天操狠狠操夜夜操中文字幕| 妇女视频网站| 亚洲综合大片| 97天天插| 青草精品视频-日本久久久久网站| 国产精品一区二区三区在线| 97精品| 黄色片一区二区三区四区五区| 影音先锋日本乱伦| 先锋激情∨在线视频播放| 强奸乱伦AV网站| 色综合色欲色综合色综合色综合| 久热9| 亚洲s在线观看| 天天摸夜夜操视频| 精品十八在线观看| 97香蕉网| 亚卅熟女乱色| 欧美狠狠弄| 久久噜噜噜精品国产亚洲综合| 国产97色在线| 综合免费无码中文| 日本一级黄色电影| 日韩 欧美 校园一区| 91国产丝袜美女| 久久久久亚洲熟妇熟女| 国产精品免费美女视频| 久操99| 日韩欧美久久婷婷网站| 亚洲精品乱码线路中文字幕 | 日本网色| 加勒比性爱成人在线| 中国一级αV| 9色在线| 成人欧美日超碰| 99精品国产户外露出| 国产高清在线观看欧美| 宗合情欲网| 丰满人妻区一区二区三| 99精品久久| 欧美日韩人妻婷婷一区| 日韩欧美亚洲自拍偷拍| 91狠狠色丁香婷婷综合久久| 天天搞欧美| 在线国产福利网址导航| 97亚洲资源| 色呦呦国产精品免费看| 婷婷香蕉欧美在线一区二区三区 | 亚洲欧美另类少妇精品| 日本道人妻久久久在线不卡色视频| 国模私拍一区二区三区神乳| 熟女自慰久久久| 成人五级久久| 97综合在线观看| 97精| 97激情97激情| 日韩黄片影院| 黄网站黄视频网站进入口| 超碰97欧美| 美女高潮视频91| 婷婷丁香激情| 乱码熟妇人妻久久久| av在线播放国产一区| 欧美成人综合| 深夜国产一区二区三区在线看| 日韩精品大香蕉伊人在线| 久热香蕉精品在线视频| 中文字幕免费看| 69超碰综合| 影音先锋日本乱伦| 熟妇人妻一区二区三在线| 色官网色综合| 亚州色图欧美色图| 男人的天堂激情| 亚洲无码?第一页| AV有码在线| 中文字幕版| 日韩人妻播放| 97chaopengongkai| 久久这里| 日韩偷拍色图| 国产美女mm131爽爽爽爽| 欧色网址| 日韩中文字幕宗合在线| 天天干天天做| 欧美一级A片不卡视频。| 久久爱97| 农村妇女精品一区二区| 久久久爆乳翘臀一线天伦理视频| 国产精品毛片?v一区二区三区| 欧美亚洲清纯| 伊人久久国产免费观看视频| 亚洲另类电影| 成年人性爱日韩| 91精品无码久久久久久久| 97国产精品久久久久| 美女97超碰| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 无码人妻丰满熟妇区毛片| 亚洲高潮少妇| 婷婷亚洲五月***久久| 激情黄色片在线观看| 91五十路| 日逼97| 精品人妻一区二区蜜桃视频 | 美女的肌被草喷水视频| 丰满翘臀美女影院视频| 五月天激情网图片| 日韩精品区二区三区不卡| 日本护士高潮| 久久久久久AⅤ无码免费肉站 | 少妇的嫩逼图片| 大白逼三四级| 久久久久久人| 91丰满| 欧美青青草视频| 超碰97导航| 久9爱精品| 九九亚洲| 一区二区三区美女超清| 天天亚洲| 午夜啪| 激情网色| 国产精品久久久鸭无码的功能| 思思热影视| 麻豆这里只有精品| 乱老女人一区二区视频| 国内91熟女人妻丝袜天天精品视频在线 | 麻豆色99999| 欧美在线天堂| 欧美日韩另类在线播放| 国产黄片精品在线| 最新日韩黄片| 免费看美国人人爽,人人操| 久久精彩视频9| 大香蕉在线视频重口味毛片在线| 久久久熟女一区| 色九久| 国产一进一出视频网站| 五月婷婷性爱| 高清不卡国产| 97超碰欧美手机在线| 久久久久久久人妻丝袜| 国产精品亚洲无码| 丁香五月色| 97色论| 俺去啦自拍| 国产91影院| 樱花蜜乳av| 午夜免费福利视频一区| 亚洲欧美综合色| 欧日韩一二三f区| 人人看人人插| 久久综合18p| 久久久久久99999国产精品| 亚洲国产一级黄色视频| 国产伦精品一区二区三区在线观 | 好屌色综合| 中文字幕熟女人妻丝袜| 日韩在线观看中文字幕视频| 97精品久久| 黄片com.| 亚洲在高跟鞋自慰久久在色线| 熟妇乱伦一区二区| 久久人妻精品| 插插综合网天天影视网| 日欧操屄视频| 国产日产欧产美韩系列麻豆免费| 国产精品爱欲| 亚洲s在线观看| 好爽视频在线观看视频 | av72网| 精品中文字幕一区二区| 天天干天天日天天射黄色大片| 日韩无码一区二区三区| 99爱精品| 天美91| 久久精品免费| 91国产操逼视频| 韩国女主播青草福利视频| 欧美亚洲91| 亭亭丁香激情| 综合久久久久久久久91| 亚洲 图片 欧美 色图| 91亚洲色图| 图色综合网| 北约熟女超碰| 噜噜噜亚洲精品| 人人看人人摸人人色| 亚洲精品97久久中文字幕| www.av在线观看| 日韩人妻无码不卡网站| 韩国轻伦国内自拍一区| 国产精品不卡一区二区三区av| 亚洲欧洲无码97久久精品| 亚乱色| 久久精品电影在线| 国产欧美精品日韩区二区麻豆天美| 三及片网站| 嗯嗯嗯啊啊啊操的我好爽| 女生久久网| 成人熟女区| 婷婷五月天网| 国产偷人伦激情在线观看| 欧美亚洲涩涩| 女同亚洲欧美一二三区久久电影| 久久久精品中文字幕爱豆| 男人天堂 天天射| 久久精品人体| 在线观看中文av字幕| 青青在线视频日韩欧美| 丝袜狠狠草尤物 91| 色色色色色色色色色色色色色色综合 | 樱花蜜乳av| 国产福利精品98视频| 97bbn| 精品久久在线区一区| 性爱av网站| 日韩综合成人免费视频| 亚洲国产成人综合碰碰三级经典| 大香蕉在线SuP| 亚洲吊色| 目产99999久久999| 嗯啊不要在线观看嗯啊| 亚洲九月丁香| 亚洲精美粉嫩嫩泬在线观看| 91成人18| 好吊色青靑草| 大鸡巴久久| 欧美图片色五月天| 久久九操在线观看| 91欧美美女日韩国产婷婷| 日韩国语字幕| 97超碰美国| 亚洲五月丁香花狠狠干一区二区三区| 久操不卡视频| 婷婷色导航| 国产精品亚洲免费| 国产九九九九九九九九| 无码抄逼网| 日日碰狠狠添天天爽超| 97av在线视频| 99色热| 插入综合网| 精品无码一区二区| 亚州精品丝袜-不卡成人免费| 午夜天堂精品久久| 久久中日麻豆| 麻豆a'v电影| 久久黄人人爽视频| 超碰在线人人射| 日本人妻伦在线中文字幕| 久久久久九九九| 日韩成人性日韩成人性爱视频在线免费观看 | 亚洲天堂精品日韩电影| 尹人免费观看视频在线| 欧美性爱日韩性爱| 亚洲图片偷拍视频区| 亚洲天天艹| 97丝袜亚洲在线播放| 久草这里只有精品| 中文字幕一区二区三区字幕| 国产性爱乱伦AV| 夂久色| 久久综合久色欧美综合狠狠| 日本操逼无码| 国产第25页在线观看| 丁香激情五月天| 国产肏屁眼视频| 色97干| 岛国片国产成人亚洲播放| 99热成人| 国产综合久久久鬼色| 麻豆色约约| 欧美αv.com| 日韩精品99999| 60秒免费小视频| 亚洲 欧美 日本 国内 首页| 91欧洲国产成人久久精品网站| 久久高清欧美国产| 欧美72网页| 日日超碰亚洲| 日韩三级一区 | 乱伦一二三区| av天天在线观看| 网页导航五月天免费一二三区| 自拍偷拍第26| 亚洲国男人的天堂| 中文熟女五十乱码在线| 中文字幕第9页萱萱影音先锋| 国产女性无套 免费观看| 后入内射蜜桃臀| 成人性交免费视屏| 久久精品国产亚洲AV高级北京| 中文字日本乱码| 神马九九| 国产乱婷婷精品二区三区| 欧美96在线|欧| 一区二区三区精品久久| 久久华人网| 久久久国产成人一区二区三区在线| 校园春色宗合网| 国产精品无码在线| 欧洲精品欧洲精品| 操逼操逼视频操逼| 国产精品欧美激在线| 国产av激情无码久久天堂| 欧美久久草熟女| 人人操人人爽人人操人人| 少妇三P| 在线看片国产精品每日更新| 91精品久久久久久| 狠狠色色| 国产无码精品成人| 人妻久热在线| 亚洲导航深夜福利| 后入精品| 97干com| 黄色性爱网网| 亚洲综合20p| 91久久堂| 97天堂| 激情抓乳插进去啪啪啪日韩| 久久久噜噜噜久久人妻| 久久激情视频| 国产欧美日韩一区二区三区| 国产三级中文字幕粉嫩| 欧美熟妇视频| 国产成年精品高清在线观看91| 超碰久草| 东京成人一区| 99爱在线视频| 欧美强奸乱能| 最新无码国产| 久久久久久久| 日日妻色网| 狠肏骚人妻| 欧美暴力猛交| 色婷婷电影网| 玖玖玖玖精品国产剧情| 成人午夜高潮av猛片| 婷婷人妻激情| 日本欧美m v精品网站加| 伊人久久国产免费观看视频| 国产毛片精品一区二区色欲黄A片| 777琪琪午夜免费A片| 九九热精品视频六| 欧美日本不卡| 中文字幕78| 亚洲免费97免费| 欧美狠狠操| 九九精品美女高溯喷水 | 在线播放免费av福利片| 国产真乱mangent| 五月天亚洲色图| 啊啊啊啊啊啊啊啊在线观看| 久久激情视频| 久久激情四射婷婷丁香五月天| 丝袜喷水在线| 色爱欲亚洲| 91欧美偷拍| 亚洲情色在线| 一二三四视频在线社区中文字幕| 大香伊人在线一区| 久久久久ab| 做爱福利视频一区二区| 天天操美美| 高清孕妇孕交 交孕妇| 深夜激情| 这里只有精品97| 神马久久免费电影观看| 欧美性暴力猛交| 男人亚洲天堂| 日韩激情毛片一级久久久| 日韩人妻一区二区| 大香蕉黄色一级片免费看| 免费看黄视频亚洲网站| 国产强奸超碰AV| 欧美色图天堂在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 95精品在线| 福利在线视频一区二区| 天天躁狠狠躁av| 啊啊啊啊无码| 久久91| 国产一区自拍欧美日韩| 国产乱人伦AVA麻豆软件.| 婷婷丁香久久| 欧洲综合视频| 少妇内射视频| 久操免费观看| 国产绿奴视频在线观看| 97久久视频| 久久久久亚洲一区女同性恋中文字幕| 怡红院亚洲怡春院av| 午夜精品久久久| 日韩欧美国产高清视频| 伊人成人情色综合| 伊人97| 亚洲欧综合另类无码一区| 欧美色棕合| 熟女高潮精品一区二区| 人人人摸人人| 久久午夜伦| 啊啊啊男女| 凹凸久久人人| 亚洲大色堂| 欧美爱爱97| 99色骚| 久草午夜| 91国产精品在线看| 哈哈操 大香蕉| 3p国产欧美99热| 亚洲日韩欧美一区二区| 日韩黄片影院| 看黑人AV不卡| 96超碰网| 国产精品一级片在线看| 伊人久久久日韩一区| 欧州一区二区三区四区| 日韩天美| 久久天堂| 日韩精品三区四区| 天天夜躁日日躁狠狠2002| 久久国产精品一级二级三级| 偷拍盗拍亚洲色图图片| 污啪啪啪视频| 蜜臀久久99精品久久久久久无删减| 色婷婷香蕉| 极品肉射| 国产日韩精品一区二区三区| 日韩免费a级毛片无码a∨| 嗯嗯啊啊操死我| 国产精品不卡一区二区三区av| 日韩影片中文字幕一区二区三区| 国产白丝精品在线观看| 伊人久久大香线综合无码| αⅴ天堂| 91精品在线播放| 717影院理论午夜伦八戒| 久久精品操| 婷婷精品视频| 亚洲欧美另类激情小说| 欧美性区| 国模少妇一区二区三区| 777超碰| 久草婷婷| 欧美麻豆成人同性GⅤ在线| 久久男人的天堂| 亚洲情色图片区| 成人av动漫在线观看| 亚洲丝袜诱惑| 欧美 熟女 日韩| 人妻少妇精品一区二区三区| 国产综合日韩伦理| 狠狠操狠狠燥| 激情五月天婷婷| 草莓精品视频在线免费观看| 国模久久在线| 国产精品久久久蜜臀| 看日韩操逼| 91精品微拍福利| 天干天干天干天天做| 精品国产乱码久久久兰草影视| 天天爽夜夜操| 国产精品探花在线| 影音先锋日本乱伦| 天天爽天天操啊啊啊| 久久视频,这里只有精品 | 青操影院| 97这里都是精品| 99亚亚热| 欧美日韩国产在线| 国产精品久久久久久 百度| 亚洲国产av中文字幕久久 | 日韩无码嘿咻黑热久| 五月婷婷激情综合| 91高清无码下载| 三级AV入口| 久操免费在线| 欧美在线91| 亚洲黄色AV电影| 999久久久国产精品| 久久噜噜噜精品国产亚洲综合| 中文字幕超碰CAO| 九九热在线精品视频| 日韩久草| 欧美女同在线| 亚洲资源网| 精人妻无码一区二区三区伊人直播| 佐山爱中文字幕| 亚洲男人的天堂AV| 色综合超碰超| 少妇精品久久久八区九区| 久久9精品网站| 欧美黑人168页欧美黑人167| 啊啊啊啊啊啊啊在线| 中文欧丝袜诱惑| 大茄子熟女AV导航| 神马九九| av网站在线观看了| 一级性爱aaaa| 日本欧美国内在线| 五月丁香影视| 日韩pv中文| 北条麻妃性愛视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 人妻免费观看| 国产人妖的免费的视频| 国产在线强奸视频| 97香蕉碰碰人妻国产欧美| 殴美牲| 新视频sss国产| 天天夜夜rb| a片在线播放| 国产精品成人蜜臀AV在线| 思思热在线| 亚洲日本天堂| 久久AV无码AV| 日本性爱少妇| 欧美老妇综合网| 日本一卡二区在线| 久久久久久久伊人精品| 丁香五月激情综合| 久久大陆| 一本色道综合久久欧美| 欧美亚洲中文字幕| 天天摸,夜夜摸| 婷婷五月天av| 天天天天天天天天综合| 久久久精品网| 国产精品一区二区黄片| 九九九九九九九九九五码| 亚洲91色| 99热| 亚洲图片欧美偷拍| 国产综合网站在线播放| 亚洲精品丝袜-不卡成人免费……| 国产精品久久久久久9999| 激情 欧美 亚洲 小说| 啊啊啊啊啊啊啊国| 国产区在线| 久久九色| 欧美男人的天堂| 97色干| 视频二区美腿制服人妻欧美| 日韩欧美字幕亚洲一区二区| 国产精品视频播放| 手机在线免费看的av| 天美国产三级传媒| 亚洲性高潮| 天天日天天插| 欧美加勒比| 久操B网| 第四色奇米影视777| 91丝袜美女| 性爱乱伦视频免费|