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

ARTICLE DETAIL

資訊詳情

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

Python函數(shù)進階:參數(shù)、閉包、裝飾器與遞歸調(diào)試避坑

Python函數(shù)進階:參數(shù)、閉包、裝飾器與遞歸調(diào)試避坑 寫代碼寫到第6章基本都會撞上“函數(shù)”這道坎。前面幾章無非是變量、判斷、循環(huán)寫出來的腳本像一條直線從上跑到下能出結(jié)果就算贏。等到代碼量過了兩三百行同樣的校驗邏輯被復(fù)制到第五個地方改一個字段名要全局搜索十幾處這時候才意識到Python函數(shù)不是為了考試才存在的語法糖它是把一條直線折成一張網(wǎng)的第一根折痕。我見過的多數(shù)問題包括參數(shù)默認值踩的坑、閉包里變量取到的值不對、裝飾器把函數(shù)名字改沒了都不是“不會寫函數(shù)”而是“把函數(shù)當成代碼塊沒把它當成對象和契約”。這篇內(nèi)容我會從參數(shù)、作用域、返回值、裝飾器、遞歸到調(diào)試拆分把自己和身邊人實際踩過的坑按順序攤開講適合剛學(xué)完基礎(chǔ)語法、正準備動手寫第一個稍大一點項目的人也適合寫到中途突然覺得代碼開始失控、想回頭補課的人。讀完你至少能判斷什么樣的重復(fù)值得抽函數(shù)、參數(shù)該怎么設(shè)計才不給未來的自己挖坑、為什么有些bug只有把函數(shù)拆開才看得見。1. 函數(shù)不是把代碼裝進盒子它是控制復(fù)雜度的最小單位1.1 從一段被我刪掉的重復(fù)代碼說起前陣子接手一個內(nèi)部用的小工具兩千多行代碼塞在一個腳本里其中有個用戶輸入校驗的段落連續(xù)出現(xiàn)了六次每次長十來行判斷字段是否為空、長度是否超限、編號是否符合預(yù)期格式。六段代碼幾乎一模一樣唯一區(qū)別是第二段多了一句把結(jié)果寫進日志。改需求的時候那位作者改了其中四處漏了兩處于是同樣一條非法輸入從A入口進會被拒絕從B入口進就直接寫進了存儲層。這種問題不是水平問題是函數(shù)沒有被當作隔離帶使用。抽函數(shù)這件事真正的價值不在于少打幾行字而在于制造一道邊界邊界外面的人只關(guān)心“給我輸入我還你一個結(jié)果”邊界里面的實現(xiàn)怎么改、日志怎么寫、異常怎么轉(zhuǎn)外面的人不需要知道。六段重復(fù)代碼抽成一個validate_user_payload(payload)改需求的時候只需要動一處漏改的可能性直接歸零。這就是我常說的函數(shù)的第一職責(zé)是收斂變化點把最容易變的那部分圈起來。但反過來說我見過另一種極端有人把每個if判斷都抽成一個只有一行return的函數(shù)整個文件變成四十個小函數(shù)互相調(diào)用讀起來的跳轉(zhuǎn)成本比原來還高。函數(shù)的粒度應(yīng)該由“變化的可能性”決定而不是由“代碼行數(shù)”決定。一段十行的代碼如果半年都不會改重復(fù)兩次也沒什么一段三行的代碼如果被六個入口依賴那就必須抽。1.2 語法塊、對象、命名空間函數(shù)的三副面孔多數(shù)教程講函數(shù)只講第一副面孔一個可以傳參、可以返回的語法塊。真正決定你能不能寫好Python函數(shù)的是另外兩副。第一副是對象。在Python里def語句執(zhí)行完函數(shù)名就綁定到一個函數(shù)對象上跟a 1綁定整數(shù)沒有任何本質(zhì)區(qū)別。這意味著函數(shù)可以賦值給變量、放進列表、當參數(shù)傳給另一個函數(shù)、作為返回值返回。裝飾器、回調(diào)、策略表這些東西之所以能成立全靠這一條。很多人看到裝飾器覺得玄其實就是“函數(shù)當參數(shù)、函數(shù)當返回值”兩個動作疊在一起。第二副是命名空間。函數(shù)體被調(diào)用時才產(chǎn)生一個局部命名空間函數(shù)返回后這個空間就銷毀。函數(shù)里的變量默認不會污染外面這既是優(yōu)點也是坑的來源——你在函數(shù)里對一個外層列表做了append外層確實變了因為改的是對象但你在函數(shù)里寫x x 1外層的x紋絲不動因為只是重新綁定了一個新名字。這兩件事看起來像一回事實際差得遠第3節(jié)會展開。def touch_list(lst): lst.append(1) # 改的是外部那個列表對象本身 def rebind_number(n): n n 1 # 只是把局部名字n重新指向了一個新整數(shù) data [] num 0 touch_list(data) rebind_number(num) print(data, num) # [1] 01.3 什么時候該抽函數(shù)什么時候抽了更糟我的判斷標準很土但用了很多年當你需要給這段代碼寫注釋解釋“它在干什么”的時候這段代碼就該有一個名字了。注釋是對名字的替代如果這段邏輯有一個準確的名字那就用函數(shù)名承擔說明職責(zé)別讓注釋散落在正文里。反過來以下幾種情況我傾向于不抽或者晚抽只在一個地方用、且邏輯與調(diào)用點強耦合、拆開后需要傳五六個參數(shù)才能工作。這種“參數(shù)搬運”說明拆錯了位置邊界沒找對。純粹為了減少行數(shù)而抽比如把print包一層。這種分層沒有帶來任何信息量讀的人還要多點一次跳轉(zhuǎn)。抽出來的函數(shù)名字叫process_data、handle_info、do_check這類——名字模糊說明你自己也沒想清楚它的職責(zé)這種函數(shù)遲早會變成新的意大利面。一個實用原則函數(shù)名如果是動詞加名詞且能一句話說清它輸入什么、輸出什么、副作用是什么才算合格的名字。如果一句話說不完多半是職責(zé)太多。真正值得抽的通常是這幾種輸入校驗、格式轉(zhuǎn)換、與外部交互讀寫文件、發(fā)請求、以及那些你已經(jīng)在腦子里默認“這塊是獨立的”的邏輯。前三種是變化最頻繁的地方最后一種是認知最清晰的地方。2. 參數(shù)設(shè)計默認值、可變對象與那些星號2.1 默認參數(shù)在 def 執(zhí)行的那一刻就求值了這是Python函數(shù)參數(shù)里最容易被忽略的機制。很多人的直覺是“每次調(diào)用時重新算一遍默認值”實際上默認值是在函數(shù)定義被執(zhí)行時求值一次之后一直復(fù)用那個對象。對不可變對象數(shù)字、字符串、元組、None沒什么影響對可變對象就是災(zāi)難。import time def log(msg, tstime.time()): print(f[{ts:.0f}] {msg}) time.sleep(1) log(第一條) time.sleep(1) log(第二條)兩條日志的時間戳一模一樣。因為time.time()在定義log的時候就算完了后續(xù)所有調(diào)用都在用這個舊值。想要每次調(diào)用取當前時間必須寫成tsNone然后在函數(shù)體里判斷。這個坑和可變默認參數(shù)是同一個根源只是表現(xiàn)形式更隱蔽因為它不報錯只是數(shù)據(jù)不對。2.2 可變默認參數(shù)每個人都該親手踩一次的坑def add_item(item, bucket[]): bucket.append(item) return bucket print(add_item(a)) # [a] print(add_item(b)) # [a, b] 期望是 [b]原因很直接[]這個列表在def執(zhí)行時創(chuàng)建了一次掛在函數(shù)對象上所有沒用第二個參數(shù)的調(diào)用共享它。默認值實際上存在add_item.__defaults__里打印一下就看得見。正確寫法是雙段式這也是PEP 8推薦的慣用法def add_item(item, bucketNone): if bucket is None: bucket [] bucket.append(item) return bucket注意這里必須是is None而不是if not bucket。如果調(diào)用方傳進來一個空列表not bucket為真你會新建一個列表調(diào)用方傳進來的那個就不會被修改行為反了。這種“看起來能跑、邊界情況下錯”的寫法比直接報錯更難排查。寫法是否安全說明def f(x, a[])否所有調(diào)用共享同一個列表def f(x, a{})否字典同理且更隱蔽def f(x, aNone) 判空重建是推薦寫法def f(x, a())是元組不可變但無法追加元素用途有限def f(x, afrozenset())是需要集合語義時的安全選擇有一點值得補充如果你確實想用共享狀態(tài)做緩存那用可變默認參數(shù)反而是個技巧但必須寫注釋說明這是故意的并且給它一個好名字比如_cache{}。沒有注釋的共享狀態(tài)在代碼評審里一律按bug處理。2.3 *args 和 **kwargs 什么時候真的需要兩個星號很多人學(xué)完就忘了或者反過來走到哪都用。它們真正的適用場景其實很窄包裝或轉(zhuǎn)發(fā)。你要在調(diào)用某個已有函數(shù)前后加點東西計時、日志、重試但你不想關(guān)心它到底收幾個參數(shù)。這時候def wrapper(*args, **kwargs)是唯一不破壞兼容性的寫法。參數(shù)數(shù)量本身是開放的。比如一個批量執(zhí)行函數(shù)run_all(*tasks)一個配置合并函數(shù)merge(**overrides)。給裝飾器傳參。def retry(times3, delay1.0)返回一個真正的裝飾器這層結(jié)構(gòu)必須用嵌套函數(shù)。不適合的場景也很明確如果你明知道函數(shù)只接收name和age就別寫def create(**kwargs)。這種寫法會讓IDE的補全、類型檢查、以及調(diào)用方對參數(shù)的理解全部失效出錯只能在運行時暴露。我評審代碼時看到這種簽名第一反應(yīng)是問“你到底想接收什么”。還有一個細節(jié)*args拿到的是元組**kwargs拿到的是字典而且順序在Python 3.7是有保證的按傳入順序。如果你需要把kwargs原樣傳給下一個函數(shù)直接用func(**kwargs)解包不要自己拼。2.4 斜杠和星號把調(diào)用方式鎖死Python 3.8 之后函數(shù)簽名里可以出現(xiàn)/和*用來限定參數(shù)只能按位置傳、或只能按關(guān)鍵字傳。def transfer(amount, /, account, *, memo): ...這里的含義是amount只能按位置傳account位置或關(guān)鍵字都行memo只能用關(guān)鍵字傳。這個語法看起來古怪實際解決的是參數(shù)名不能隨便改的問題——如果一個參數(shù)被設(shè)計成僅位置你就可以放心把它改名為amt而不擔心有調(diào)用方在用amount傳參。標準庫和很多三方庫里大量使用這個技巧做演進。日常寫業(yè)務(wù)代碼我的建議是關(guān)鍵參數(shù)盡量只允許關(guān)鍵字傳遞用*隔開。像send_mail(to, subject, body, cc, bcc, retry)這種簽名調(diào)用時寫成send_mail(a, b, c, True, False, 3)半年后沒人看得懂。改成def send_mail(to, subject, body, *, ccNone, bccNone, retry3)調(diào)用方必須寫retry3可讀性立刻不一樣。3. 作用域與閉包變量到底被誰改了3.1 LEGB 不是背誦口訣是查找順序局部Local、外層函數(shù)Enclosing、全局Global、內(nèi)置Built-in這個順序背起來容易用起來出問題的地方在于Python在編譯函數(shù)體時就決定了每個名字是局部還是全局不是運行時才判斷。count 0 def bump(): print(count) # 這里會直接拋 UnboundLocalError count count 1因為函數(shù)體里出現(xiàn)了count ...這個賦值編譯器把count標記為局部變量。于是第一行print(count)去找局部變量發(fā)現(xiàn)還沒賦值直接報錯。這個錯誤信息叫UnboundLocalError: local variable count referenced before assignment幾乎每個學(xué)函數(shù)的人都撞過而且看錯誤信息完全猜不到原因。記住一句話就夠了函數(shù)里只要對某個名字做過賦值它就是局部的除非你顯式聲明 global 或 nonlocal。3.2 閉包保存的是綁定不是值閉包指的是內(nèi)層函數(shù)引用了外層函數(shù)的局部變量并且外層函數(shù)返回后這些變量依然存活。這個概念本身不難難的是它的一個推論閉包捕獲的是變量本身不是捕獲那一刻的值。變量后來變了閉包里讀到的也變。funcs [lambda: i for i in range(3)] print([f() for f in funcs]) # [2, 2, 2]三個lambda都捕獲同一個i循環(huán)結(jié)束時i是2。修復(fù)方式有兩種第一種是借助默認參數(shù)在定義時求值funcs [lambda ii: i for i in range(3)] # [0, 1, 2]第二種是用functools.partial可讀性更好一些from functools import partial def make(i): return i funcs [partial(make, i) for i in range(3)]同一個機制在按鈕回調(diào)、事件綁定、異步任務(wù)提交里反復(fù)出現(xiàn)癥狀都是“所有回調(diào)都用了最后一個值”。認出這個模式比記住修復(fù)方法更重要。順帶說一句閉包在Python里是有實際用處的不是炫技。典型場景是做帶狀態(tài)的計數(shù)器或者帶配置的函數(shù)工廠def make_counter(start0): n start def counter(): nonlocal n n 1 return n return counter這里的nonlocal是必須的否則n 1會讓n變成內(nèi)層函數(shù)的局部變量又觸發(fā) UnboundLocalError。3.3 global 和 nonlocal 該用到什么程度我的態(tài)度比較保守global在業(yè)務(wù)代碼里基本不該出現(xiàn)它意味著你要從一個函數(shù)深處改全局狀態(tài)這種耦合遲早會咬人。真要共享狀態(tài)用參數(shù)傳、用返回值接、或者用類封裝都比改全局變量好。nonlocal的情況要好一些因為它限制在嵌套函數(shù)之間影響范圍可控前面那個計數(shù)器就是合理的用例。但同樣一旦嵌套超過兩層nonlocal的追蹤成本就上來了我一般會把狀態(tài)改成一個小的類或者dataclasses實例。經(jīng)驗判斷如果你需要寫global才能讓函數(shù)工作先別寫回頭看看這個變量是不是該作為參數(shù)傳進去或者該作為返回值帶出來。90%的情況能改掉。模塊級別的常量全大寫那種讀是可以的改就免了。4. 返回值設(shè)計None、異常還是哨兵值4.1 多返回值是元組解包前先想清楚return a, b看起來像返回兩個值實際是返回一個元組。這帶來一個常見問題調(diào)用方寫x, y get_pair()如果函數(shù)在某條分支上只return None解包就會拋TypeError: cannot unpack non-iterable NoneType object。這類錯誤通常出現(xiàn)在異常分支跑正常流程永遠測不出來。我的做法是要么所有分支都返回相同結(jié)構(gòu)的元組要么干脆不返回元組。如果某條分支實在沒結(jié)果返回(None, None)而不是None至少解包不會炸。還有一個語法細節(jié)常被誤解def f(): return 這個字符串永遠不會被返回 def g(): return ( 括號里的內(nèi)容會被返回 )return后面換行語句就結(jié)束了下面的東西是死代碼。而括號里的內(nèi)容可以跨行因為括號構(gòu)成了隱式的續(xù)行。寫多返回值時長元組拆行記得用括號包起來。4.2 什么情況下該拋異常而不是返回 None這是函數(shù)設(shè)計里最影響長期維護的一個決定。我的判斷標準只有一條“查不到”和“出錯了”是兩種不同的事。查詢類操作查不到是正常業(yè)務(wù)結(jié)果返回None或空集合。比如find_user(uid)找不到用戶None合理。參數(shù)不合法、前置條件不滿足、外部依賴失敗這些屬于異常直接raise。千萬不要用返回-1、返回ERROR、返回False來表達“出錯了”。調(diào)用方永遠會忘記判斷而raise至少會在出錯的地方炸掉不會帶著錯誤數(shù)據(jù)繼續(xù)往下跑。哨兵值sentinel是第三種選擇適用于“None也是一個合法返回值”的場景_MISSING object() def lookup(store, key): if key in store: return store[key] return _MISSING value lookup(data, name) if value is not _MISSING: ...用object()創(chuàng)建一個獨一無二的標記比用None或者字符串__missing__安全得多因為不可能有業(yè)務(wù)數(shù)據(jù)恰好等于它。4.3 函數(shù)簽名本身就是文檔一個函數(shù)對外暴露的信息除了名字就是簽名參數(shù)名、默認值、類型注解、返回類型。我見過很多函數(shù)注釋寫了五行簽名卻是def handle(a, b, cNone, dFalse)讀者還得讀函數(shù)體才知道dTrue是什么意思。類型注解不是必須的但在稍大的項目里投入產(chǎn)出比很高from typing import Optional, Sequence from dataclasses import dataclass dataclass class Result: ok: bool message: str items: Sequence[str] () def parse_records(raw: str, *, strict: bool False) - Result: ...這里的注解有三個作用編輯器的補全和跳轉(zhuǎn)能用上調(diào)用方不看實現(xiàn)就知道傳什么strict前面有個*調(diào)用時必須寫名字不會被誤傳。這三條加起來比寫十行注釋都有用。5. 把函數(shù)當對象用裝飾器、高階函數(shù)與回調(diào)5.1 函數(shù)是對象的四個具體表現(xiàn)這句話被說濫了落到實際操作上到底是哪四條第一函數(shù)可以賦值給另一個名字alias original兩者指向同一個函數(shù)對象。第二函數(shù)可以作為參數(shù)傳給另一個函數(shù)sorted(items, keylen)里的key就是。第三函數(shù)可以作為返回值這是閉包和裝飾器的基礎(chǔ)。第四函數(shù)可以有屬性func.tag v2是合法的雖然少用。理解這四條之后很多“黑魔法”就變得平淡了。比如策略表def by_name(item): return item[name] def by_score(item): return -item[score] STRATEGIES { name: by_name, score: by_score, } sorter STRATEGIES.get(sort_key, by_name) items.sort(keysorter)這比寫一長串 if/elif 好維護得多新增排序方式只要往字典里加一行不需要改調(diào)用邏輯。缺點是如果某個策略需要額外參數(shù)比如升序降序純函數(shù)就不夠用了需要換成functools.partial或者小對象。5.2 手寫一個裝飾器以及為什么必須加 wraps裝飾器的本質(zhì)是“接收函數(shù)、返回新函數(shù)”。最簡版本import time def timing(func): def wrapper(*args, **kwargs): start time.perf_counter() result func(*args, **kwargs) cost time.perf_counter() - start print(f{func.__name__} 耗時 {cost*1000:.1f} ms) return result return wrapper timing def slow_job(n): time.sleep(n) return n這段能跑但有個副作用slow_job.__name__變成了wrapper__doc__也沒了。用functools.wraps修一下from functools import wraps def timing(func): wraps(func) def wrapper(*args, **kwargs): ... return wrapperwraps(func)會把原函數(shù)的__name__、__doc__、__module__、__qualname__、__annotations__和__dict__復(fù)制到新函數(shù)上。不寫這個日志里的函數(shù)名全是 wrapper調(diào)試時根本分不清是哪個函數(shù)打的。帶參數(shù)的裝飾器要多包一層這是很多人第一次寫會繞暈的地方def retry(times3, delay0.5): def decorator(func): wraps(func) def wrapper(*args, **kwargs): last None for _ in range(times): try: return func(*args, **kwargs) except Exception as e: last e time.sleep(delay) raise last return wrapper return decorator三層結(jié)構(gòu)記法最外層收裝飾器自己的參數(shù)中間層收被裝飾的函數(shù)最內(nèi)層是真正的替換函數(shù)。寫的時候數(shù)一下括號層級基本不會錯。注意裝飾器堆疊時執(zhí)行順序是“離函數(shù)近的先包離函數(shù)遠的先執(zhí)行外層邏輯”。兩個裝飾器寫反了行為可能完全不同尤其是涉及異常處理和計時的組合。5.3 lambda 和 map/filter 的適用邊界lambda唯一的正當用途是邏輯只有一行、并且只在這里用一次。典型的就是sorted(keylambda x: x[1])、max(items, keylambda r: r.score)。超過一行、或者需要命名就老老實實寫def起一個有意義的名字。map和filter在Python里其實不如列表推導(dǎo)式好用因為推導(dǎo)式能直接表達條件、能做嵌套、可讀性更好nums [1, 2, 3, 4, 5] # 不推薦 list(map(lambda n: n * 2, filter(lambda n: n % 2 0, nums))) # 推薦 [n * 2 for n in nums if n % 2 0]map真正有價值的地方是配合已有函數(shù)用不用寫lambdalist(map(str.strip, lines))、list(map(int, parts))。這時候它比推導(dǎo)式短也不損失可讀性。至于filter我基本不用[x for x in xs if cond(x)]就夠了。6. 遞歸、調(diào)試與把函數(shù)拆開排查6.1 遞歸的兩個必要條件與深度限制遞歸寫錯無非兩種忘了終止條件無限循環(huán)直到棧溢出或者終止條件寫錯結(jié)果偏了一位。Python 默認的遞歸深度限制是 1000可以用sys.getrecursionlimit()查但我不建議隨便調(diào)大——Python 沒有尾遞歸優(yōu)化每一層調(diào)用都真實占棧幀調(diào)到一萬層基本就是賭機器不死。def flatten(items): out [] for it in items: if isinstance(it, list): out.extend(flatten(it)) else: out.append(it) return out print(flatten([1, [2, [3, [4]]], 5])) # [1, 2, 3, 4, 5]這個例子里終止條件是“遇到非列表元素就直接收進結(jié)果”遞歸條件是“遇到列表就下去一層”。寫遞歸的時候我習(xí)慣先寫終止條件再寫遞歸調(diào)用順序反了很容易漏。如果數(shù)據(jù)層級可能很深比如解析嵌套很深的配置用顯式棧的迭代版本更穩(wěn)def flatten_iter(items): stack list(reversed(items)) out [] while stack: cur stack.pop() if isinstance(cur, list): stack.extend(reversed(cur)) else: out.append(cur) return out或者用生成器加yield from寫法更簡潔也天然帶惰性求值。6.2 用函數(shù)拆分把 bug 逼到角落里排查問題的效率很大程度取決于函數(shù)切得夠不夠細。一個兩百行的函數(shù)出了錯你只能一行行讀切成八個二十行的函數(shù)你可以寫個臨時腳本單獨調(diào)用中間那一個輸入一份構(gòu)造好的數(shù)據(jù)直接看它返回什么。我的排查順序一般是先確認輸入。在函數(shù)入口打印或者用breakpoint()停下看參數(shù)到底長什么樣。很多“邏輯錯誤”其實是上游傳了個空列表或者字符串。再看返回值。在每個return前面打印一次確認走到的是哪條分支。同一個函數(shù)有五個return報錯時你根本不知道從哪出去的。如果中間狀態(tài)復(fù)雜把可疑的那一段臨時抽成獨立函數(shù)單獨測。這一步很關(guān)鍵耦合在長函數(shù)里的邏輯無法隔離驗證。最后才去懷疑庫和外部依賴。順序反了會浪費大量時間。順帶推薦一個習(xí)慣函數(shù)里盡量只做一件事尤其不要“邊計算邊寫文件”。把副作用挪到調(diào)用方函數(shù)本身保持純輸入輸出測試成本會低一個數(shù)量級。6.3 一組函數(shù)相關(guān)的報錯對照下面這些錯誤信息學(xué)函數(shù)這章的時候基本都會撞一遍。能讀懂它們調(diào)錯速度會快很多。報錯信息典型原因處理方向NameError: name x is not defined變量沒定義、拼寫錯誤、或者定義在另一個函數(shù)里檢查作用域確認變量在當前位置可見UnboundLocalError函數(shù)內(nèi)某處對變量賦值導(dǎo)致編譯器判定為局部變量加global/nonlocal或改名避開TypeError: f() missing 1 required positional argument少傳了必填參數(shù)檢查簽名和調(diào)用處必要時給默認值TypeError: f() got an unexpected keyword argument關(guān)鍵字參數(shù)名拼錯或該參數(shù)是僅位置的對照def行核對名字TypeError: f() takes 2 positional arguments but 3 were given多傳了位置參數(shù)通常是把關(guān)鍵字參數(shù)寫成了位置形式給后面的參數(shù)加名字TypeError: cannot unpack non-iterable NoneType object函數(shù)某條分支返回了 None調(diào)用方按元組解包統(tǒng)一各分支返回結(jié)構(gòu)RecursionError: maximum recursion depth exceeded缺終止條件或遞歸分支沒有收斂補基礎(chǔ)情形或改成迭代SyntaxError: non-default argument follows default argument有默認值的參數(shù)寫在了無默認值參數(shù)前面調(diào)整參數(shù)順序把帶默認值的放后面最后一行那個錯誤值得單獨說一句def f(a1, b)是語法錯誤但def f(a, b1)沒問題。這條規(guī)則和調(diào)用時的“位置參數(shù)必須在關(guān)鍵字參數(shù)前”是同源的記住“有默認值的往后靠”就不會錯。把這幾節(jié)的內(nèi)容串起來看函數(shù)這塊真正的難點從來不是語法。def、return、*args、裝飾器符號這些半小時就能背完。真正花時間的是那些需要寫夠代碼量才會浮現(xiàn)的問題默認值被共享、閉包捕獲到最后一個值、異常分支返回了 None 導(dǎo)致解包炸掉、長函數(shù)里根本定位不到出錯的那一行。我自己寫代碼這些年最有用的兩個習(xí)慣都和函數(shù)有關(guān)——一個是給每個函數(shù)寫清楚它的輸入輸出契約寧可在簽名上多花五分鐘另一個是看到重復(fù)就抽但抽之前先問自己“這段邏輯以后會一起變嗎”。這兩個習(xí)慣幫我省下的排查時間比學(xué)任何高級語法都多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天插天天插| 丁香五月天社区| 高潮毛片又色又爽免费| 婷婷丁香综合成人| 色伊人婷婷| 午夜日韩久久久网站| 五月丁香六月婷婷综合网缴情| 1024亚洲无码| 日本WWW九九九| 天天肏高清在线| 五月天婷婷色| 九九这里有精品视频| 五月婷婷之综合激情| 超碰碰碰碰| 丁香五月婷婷网| 色小说婷婷五月天天天| 无码动漫AV| 天天爽夜夜操| 天天日天天插| 亚洲日韩欧美综合VA| 日韩久久欧亚| 激情六月婷婷| 天天干天天操天天爽| 欧美亚洲婷婷五月| 天天日天天舔天天摸| 婷婷五月天福利| dingxiangtingtingliuyue| 中文字幕av在线播放| 婷婷综合| 亚洲五月天另类小说图片| 中文字幕不卡+婷婷五月| 久久激情五月婷婷| 69色婷婷| 99这里只有免费的精品| 久超超碰| 五月婷婷亚洲综合在线| 九久9精品| 思思热在线视频精品| 涩涩五| 31色区视频免费看| 天天干天天插| 色婷婷成人做爰A片免费看网站| 天天爽夜夜爽| 色婷婷丁香五月丁香| 9 1 A v久久久| 丁香五月天激情综合| 色九九综合| 久久婷婷亚洲五月天| 久久精彩免费视频精彩免费视频| 五月色婷婷亚洲 | 天天爽天天摸| 狠色狠色狠狠色综合网| 嫩模aV在线| 无码激情AAAAA片-区区| 天天揷综合网| 国产AV国片偷人妻麻豆| 婷婷久久综合久| 五月天偷拍| 亚洲女婷婷五月基地综合久久久 | 久久网日本| 亚洲久久天堂| 欧美三级巜人妻互换| AA久久| 五月天婷爱综合| 九九综合久久| 5月婷婷性视频| 大香蕉久久久久| …亚洲黄色在线播放日韩、av中文a…| 丁香六月天婷婷| 婷婷激情五月天激情小说| 精品爱欲五| 欧美亚洲色色色色| 五月丁香婷草| 情欲综合网| 五月婷婷激情综合视频| 日韩国产在线精品| 丁香婷婷性久久| 欧美S码亚洲码精品M码| 丁香婷婷婷婷十二月在线观看视频| 九九伦子片| 色色五月丁香| 亚洲爆乳无码精品AAA片蜜桃| 性一交一乱一交A片久| 无码激情AAAAA片-区区| 久久WW| 99热在线播放精品| 婷婷五月天成人网| 五月丁香婷婷成人综合网| 亚洲婷婷开心五月| 成人免费在线电影| 九九99久久精品| 91精品久久久久久久久久| 婷婷五月天国产性感美女演员久久久久| 99ri视频| 日本久久性| 丁香五月婷婷久久久| 五月激情丁香五月| 久久婷婷色丁香| 亚洲视频伍月婷婷| 台湾无码A片一区二区| 亚洲va国产va天堂va综合va| 九九色热| 久久日九九| 无码色色色色色| 性色99| 婷婷五月综合色拍| 国产免费一区二区在线A片视频| 99色性爰网络| 91久久综合亚洲鲁鲁五月天| 激情五月深爱婷婷| 国产暴力强伦轩1区二区小说| 天天日婷婷| 丁香六月中文| 狠狠搞狠狠操| 爱射综合| 欧美激情综合| 特级片神马电影| 午夜五月天| 99精品热视频| 日韩国产在线免费观看| 婷婷瑟瑟五月天| 六月激情婷婷| 99九九综合久久九九| 色色色欧美| 九九精品免费视频99| 久久五月婷6 9| 色婷婷av在线| 激情久久五月天| 婷婷五月天丁香花| 熟女色专区| 一丁香五月天月AV| 99丁香五月婷婷在线| 99亚洲视频| 亚洲综合婷婷六月丁香五月| 欧州婷婷五月天综合| 四川操逼站| 99色色爰| 99爱视频免费| 激情五月天婷婷免费观看| 日本色视| 五月婷婷综合在线亚洲视频| 丁香五月天婷婷中文| 99色在线| 日韩在线99| 人人摸人人摸| 色插人人| 天天做天天爱综合| 极品少妇婷婷五月| 色婷五月天网站| 俺去也综合| 久久婷婷成人| 五月天婷婷成人网| 26uuu国产精品| 这里只有精品视频| 婷婷中文字幕| 久久精品一区二区三区四区| 琪琪理论片| 日本色道视频网站| 免费国产视频| 五月天综合网| 久久机只有这里精品| 丁香九九九九| 欧美99视频| 五月丁香六月婷婷姐| 伊人久久大香天蕉亚洲特级| 综合色影院| 金品在线视频99| 五月丁香网站| 五月久久五月激情| 久久丁香网| 亚洲激情五月| a色色片| 婷婷五月丁香综合激情| 丁香五月婷婷总啪啪| 婷婷激情五月综合| 伊人热在线大香蕉| 91狠狠综合网| 开心五月综合激情综合五月| 日本专区久久| 9l视频自拍九色9l视频自拍九色9l社区| www,色综合| 亚洲va成人va成人va在线观看| 99精品97| 亚洲无码另类| 天天色播| 色五月激情五月| 欧美又粗又大一区二区在线观看| 丁香婷婷五月综合欧美另类| 91久久久久久| 五月天电影网| 婷婷五月天受日本法律保护| 久久99免费视频网站| 婷婷五月激情欧美大胆视频| www.97碰碰com| 久久激情五月| 天堂久久婷婷| 激情综合五月婷婷六月丁香| 日本啪啪网| 色色色图| pom538精品视频| 思思热这里只有精品视频666| 成人精品视频99在线观看免费| 色婷婷视频| 色色色色色日韩午夜激情 | 五月丁香| 六月婷婷五月天| 亚洲色涩视频| 色偷偷色婷婷| 亚洲正能量欧美| 婷婷五月丁香久久| 六月婷婷俺也去| 97超喷视频在线观看| 欧美日韩123| 婷婷五月天,影院| 欧美性生交XXXXX无码小说| 久久婷婷五月天蜜桃| 五月丁香久久| www.henhenl| 六月婷婷五月天| 九九机热| 九九热这里只有精品一| 丁香五月婷婷深五月| 操逼综合激情网| www久久99| 日本成人噜噜噜| 天堂爱爱| 亚洲激情淫网| 亚洲婷婷丁香五月在线| 91超碰人人操| 日韩啪图| 丁香婷婷综合色五月激情国产基地| 99热九九热| 99热这里只有精品66| 精品无码色欲AV| 91干视频| 欧美综合五月丁香六月婷| 色婷婷色丁香色欲av| 这里只有精品视频| A片女女女女女女BBBB| 97色婷婷成人综合在线观看| 五月天激情四射网站| 米奇影视五月天| 久久五月天合网| 久99久视频| 亚洲第二AV| 丁香网五月天| 丁香花社区av| 色婷婷丁香| 97精品在线| 精品国婬伦V无码久久久| 久久久这里有精品| 久久久GOGO无码啪啪艺术 | 99色爱| 久久五月网| 99免费成人网| 色综合播放| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 丁香五月人妻| 久久久18| 79亚洲精品少妇| 99热综合在线| 丁香五月深爱五月婷婷| 日逼影音先锋AV男人资源站| 美女爆乳18禁www久久久久久| 国产av一区二区三区| 狠狠爱综合网| 激情综合丁香六| 一二线视频 另类| 婷婷久综合| 91 久热| 五月天婷婷丁香成人网| 五月丁香五月丁香五月丁香五月丁香91| 殴美97色| 91色五月| 国产丁香五月天婷婷| 人妻操操色| 色五月婷婷五月丁香五月| 99精品在线下载| 婷婷综合激情五月综合| 天天操天天操天天操天天操天天操| 99色色色色| 婷婷深爱五月丁香| 久热大香蕉| 色色色999| 涩五月丁香| 五月丁香五月天现场视频| 这里只有精品69| 99热6这里只有精品| 九九热免费视频| 亚洲AV人人操| 色五月丁香五| 91成人品| 欧美色婷婷| 激情桃色网 | 婷婷五月丁香第四色超碰在线| 久久看九九90| 99超级碰免费视频| 日日狠狠久久偷偷四色综合免费| 色丁香久久| 婷婷五月色播网| 亚洲五月天伊人| 五月婷婷六月丁香激情| 激情综合五月| 亚洲色图五月丁香| 丁香五月婷婷天激情| 五月天婷婷久久视频| 狠狠草狠狠草| 国产精品岛国片在线观看免费| 成人在线精品| 欧美色色色色色| 日本高清久久| 亚洲视频无| 噜综合| 五月天久久丁香| 另类综合激情| 69精品无码一区二区三区| 久久视网36| 亚洲色无码| 激情五月婷婷| 香蕉久久六月| 亚洲av骚货| 天天干天天干天天| 九月婷婷久久| 爆乳熟妇一区二区三区爆乳照片| 亚洲国产成人AV在线 | 五月天五月色婷婷综合| 色五月天丁香婷婷| 97碰碰碰| 色五月亚洲| 乱乱av| 色婷婷五月影视| 婷激情五月天视频导航| 玖玖爱资源站| 免费看无码视频A级| 久操人妻| 五月丁香无码| 91人操| 亚洲亚洲亚洲AAAAAA| 天天弄天天操| 亚州精品色情在线观看| 欧美婷婷五月丁香| 五月天激情四射| 久久婷婷综合五月天| 亚洲中字AV电影在线网站| 欧美性二区| 天堂综合久| 亚洲中文AV网站| 亭亭色天香| 久99热| av大香蕉| 婷婷五月在线视频| 久久永久网址| 99色在线| 亚洲天堂AAA| 五月丁香综合啪啪| 五月色情婷婷开心五月天| 色五月婷婷色| 色婷丁香| 91操人视频| 另类视频一区| 激情综合五月丁香| 极品 少妇 内射| 久久久人妻| 噜综合| 六月丁香五月天| 99啪啪视频| 五月丁香激情综合网| 五月综合丁香婷婷| 国产成人网| 9l视频自拍九色9l视频自拍九色9l社区| 亚洲热视频| 伊人久久大香线蕉AV最新午夜| 久久这里只有国产| 亚洲日韩乱码一区二区三区四区| 九九热短视频在线观看| 亚洲第一av| 欧美性爱一区| 五月天天天操天天爽夜夜操| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 日韩99色99| Www.Av网9| 这里只有精品免费| 婷婷大香蕉| 狠狠干婷婷| 婷婷综合成人五月天| 日本女色人人| 免费精品99| 婷婷综合色| 五月丁香操婷逼| 久久99综合| 亚洲天天免费| 少妇婷婷五月天| 丁香激情久久| 久久这里只有精品无码| 97碰人人操| 操碰91| 伊人丁香婷婷东京| 欧美大道不卡| 202丰满熟女妇大| 亚洲综合色色色| 国产精品视频| 香蕉曰比| 第四色首页| 五月停视频天堂| 免费视频99| av大香蕉| 性色婷婷| 综合视频五月| 97操碰视频| 国产人妻777人伦精品HD| 伊人深爱综合| 五月天婷婷色五月天| 操大屄五月天视频| 狠狠插狠狠插| 伊人色综合网| 五月婷婷精品视频| 丁香九月久久| 五月天婷婷丁香人人操91| 六月丁香激情网| 日韩操逼小电影| 99日本黄站| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 大香蕉婷婷丁香| 五月丁香婷婷啪啪| 久久视频婷婷视频| 舔色婷婷| 激情六月一二| 丁香婷婷五月天色播| 成人免费高清在线播放| www,99视频| 这里只有精品免费视频| 99riAV国产精品视频| 爱婷婷五月| 99五月丁香丁| 久久精品99久久| 色五月色综合| 五月天激情子轮| 免费观看亚洲AV片| 四月婷婷五月丁香| 五月天婷婷影院| 丁香五月婷婷在线观看| 五月激情久久综合| aaaaaa片| 丁香婷婷六月激情文学| 九九AV在线| 日本三日本三级少妇三级66| 综合五月激情| 97日韩无套内| 日韩成人不卡| 久久久天堂国产精品女人| 六月婷婷开心| 激情影院丁香五月| 色综合99| 婷婷五月天AV| 久久这里只有精彩| 五月丁香啪啪啪| 久99综合婷婷| 久久久ww| 丁香婷婷色五月| 超碰在线观看9| 五月天伊人久久| 色99xx| 五月天婷婷青青草| 97自拍视频网| 人人操人人看97干| 亚洲AV第二区国产精品| 激情亚洲婷婷| 激情五月综合| 婷婷五月激情基地| 99热这里只有精品1998| 情婷婷五月天| 99热国产免费| 99ri在线| 六月激情网| 婷婷在线视频| 99热最新国内| 伊人网啪啪| 色色色在线| 丁香五月先锋| 色婷婷久久综合久色| 琪琪理论片| 夜夜天天久久婷婷| 日韩爱操视频| 亚洲综合久| 99热在线只有精品| 五月婷婷久久大片| 中文久久婷婷| 五月丁香网站| 4399无码视频二区| 99碰| 小视频在线亚洲| 99热99免费| 操操操AV| 色婷婷伊人| 丁香五月成人网| 国产人妻777人伦精品HD| 国产精女同一区二区三区久| 丁香婷婷九月| 色五月激情五月丁香五月婷婷啪啪综合 | 婷婷丁香五月天欧美| 色噜综| 激情99| 噜噜噜久久| 伊人婷婷99热精品| 色色爽爽天天| 性色99| 91凹凸在线| 欧美99热| 婷婷丁香综合| 五月丁香视频在线观看| 另类小说色婷婷| 天天色天天操天天射| 婷婷五月丁香激情| 91日本在线观看| 伊人热在线大香蕉| 九色PORNY自拍成人精彩视频| 五月天色播网| 免费观看的av| 五月丁香婷婷色啪| 五月丁香婷婷色色| 婷婷开心激情五月激情网| 91婷婷在线| 九九婷婷激情综合网| 色综合大香蕉| 99热这里只有精品国产精品| 亚洲精品婷婷| 97超碰在线免费观看| 久久成人性爱| 丁香激情网| 9 7总站超级碰免费视频| 成人网站在线观看视频| 色色色com| 白天AV月月| 欧美性猛交99久久久99| 黄色av高清| 婷婷,五月天,丁香,第一| 五月天婷婷综合免费| 国产人妻777人伦精品HD| 综合色吧| 丁香婷婷噜噜| 最近免费中文字幕大全高清大全1| 激情视频综合| 婷婷五月天电影区小说区| 天天爽天天爽| 婷婷五月天奸女| 九九视频这里只有精品| 色青青电影色五月| 极品人妻videosss人妻| 天天爽天天操| 五月色婷婷综合色| 思思热精品在线| 99色五月| 黄色一级影片| 日韩一级网站| 色婷婷丁香五月| 久久五月天精品视频| 激情欧美婷五月| 99视频精品在线| 欧美大香蕉视频| 丁香五月婷婷在线| 少妇婷婷五月天| 日本操逼九九九九58日本操逼| 国产肥白大熟妇BBBB视频 | 久99热在线观看| 丁香五月 无码| 丁香婷婷综合激情五月色| 日韩少妇内射免费播放| 国产美女精品| 九九精品9| 国产美女最新VA在线免费观看| 91日韩在线| 亚洲五月天综合色| 五月婷婷丁香六月| 操逼福利视频| 久久九九99视频| 日韩精品无码99| 亚洲超碰青涩| 五月婷免费视频| 欧美丁香五月夫妻天| 丁香色影院| 婷婷 丁香 精品| 激情图片婷婷丁香五月| 亚洲成人综合在线| 激情99。| 百度一下国产精品A| 久色资源网| 亚洲色基地| 丁香九月综合激情| ay2区| 伊人激情AV一区二区三区| 99re久热只有精品6在线直播| 无码AV免费精品一区二区三区| 能看的av片| 在线视频九色97| 99久在线精品99re8| av激情在线| 五月天婷婷丁香| 97婷婷丁香五月天激情图片| 婷婷丁香黄色| 国产无套精品一区二区| 婷婷丁香激情| 婷婷色在线播放| 丁香六月婷婷色XXXXX| 深情六月婷婷综合久久| 91在线看片| 九九色欲网| 免费色色色| www久久久久久久久久久久久久久久久| 婷婷五月美女直播| 色 免费网站视频| 日韩AV免费电影在线播放| 深爱五月激情| 噜综合| 久久ri精品视频| 狠狠色丁香| 五月丁香六月欧美| AV五月丁香| 人人艹艹艹| 神马欧美精| 国产视频久色| 久久婷婷五月综合激情国产| 666555。COm毛片| 97九色视频| 初夜av| 丁香五月六月综合激情| 亚洲av| 91综合国免费久入| 天天舔天天摸天天透| 日韩综合网络男女香蕉a片| 丁香香蕉射射射| 97九色| 天天爽综合网| 久久99热这里| 五月婷婷人人人操| 美女视频图片久久91| 婷婷五月天成人网| 天天综合久久| 99久久玖玖| 五月天激情综合首页| 婷婷久久伊人| 日韩熟女啪啪视频| 五月丁香综合| 九九久久综合| 久9视频免费播放| 婷婷五月天免费| 久久精品爱爱| 亚洲国产成人在线| 色色色色区| 91夫妻视频| 色婷婷色99国产综合精品| 五月天激情四射网站| 五月成人综合| 99热99精品在线观看| 人妻人人操| 丁香六月婷婷综合缴| 狠狠干狠狠干狠狠干狠狠干| 激情综合播播| 五月丁香六月色婷| 亚洲精品国产成人AV在线| 欧美 日韩 成人| 99热最新国内| 蜜臀综合久草| www...com黄在线观看| 激情综合五月| 色婷婷五月天| 五月丁香六月婷| 337p大胆噜噜噜噜噜91Av| 超碰九色| 涩涩涩五月天| 丁香五月天激情综合| 99ri国产| 五月激情婷婷丁香| 激情六月天| 91久久婷婷| 五月婷丁香| 精品人妻伦一二三区久久| 开心五月天激情网| 黄桃AV无码免费一区二区三区| 色五月激情| 亚洲人人操| 日本天天操| 欧美私人家庭影院| 婷婷五月天综合亚洲| 亚洲AV日韩在线观看| 免费色婷婷| 97婷婷五月激情六月丁香伊人| 狠狠色婷婷色| 久9无码视频| 色综合色五月| 欧美内射AAAAAAXXXXX| 色婷婷丁香五月| 日本人妻伦在线中文字幕| 国产AV一区二区三区最新精品 | 国产3p露脸普通话对白| 亚洲欧美综合7777色亭亭| 亚洲永远av在线播放| 99热一本久道| 99热91| 婷婷五月天亚洲色| 另类综合婷婷五月天欧美视频| 五月婷婷中文字幕| 亚洲超碰在线| 丰满少妇猛烈A片免费看观看| 男人的天堂婷婷色五月| 伊人玖玖综合| 久久久精品视频79| 夜夜操狠狠操天天操| 婷婷六月天激情| 婷婷久久综合| 99热在线极品极品| 久久久.COM| 五月婷婷成人网首页| 四色五月婷婷在线观看| 五月丁香综合啪啪| www日本熟妇99在线视频| 秋霞AV美国| 凹凸7777操操操| 99国产这里只有精品| 99热国内精品| 91午夜婷婷狠狠久久综合9色| 色婷成人狠干| 亚洲婷婷开心五月| 99九九在线视频| 色伦专区97中文字幕| 极品另类| 99惹精品视频| 99re免费精品视频| 91麻豆国产三级精品福利在线观看| 免费看成人747474九号视频在线观看| 五月婷婷色播视频| 日韩aaa| 精品一二三区久久AAA片 | 天天色播| 深爱五月激情| 青草视频在线播放| 五月婷网| 五月婷婷亚洲| 国产真人做爰视频免费| 99热碰碰热| 激情网五月婷婷| 亚洲精品亚洲人成人网| 日本视频欧美观看免费| 插插五月天| 99久久99九九99九九九| 国产亚洲av片| 成 久久| 五月丁香五月丁香| 九九综合伊人| 人妖色AV色综合| 六月丁香婷婷在线波多| 婷婷五月天激情小说| 欧美性爱中文字幕| 噜噜噜久久亚洲精品国产品91| 99爱视频在线观看| 久热一本| 久久综合影院 | 日韩av在线免费观看| 十二区无码| 狠狠人妻久久久久久综合丁香| 大香蕉五月天婷婷| pom538精品视频| 色综合色色色| 日日操夜夜操中国无码| 欧美va亚洲va在线播放| 99re热视频这里只精品| 就99这里只有精品| 色色色99| 狠狠色婷婷在线| 日韩九区| 婷婷九九| 99精品久久| 狼人狠狠操| 99热资源在线| 五月天停停日日| 五月婷婷五月天在线 | 日本熟妇精品99| 天天搡日日搡aaaaⅩ| 国产精品色婷婷99久久精品| 1024成人在线观看| 五月综合久久| 玖玖午夜视频| 9 1超碰九色| 色九月婷婷综合| 99综合在线| 99在线观看| 99热在线播放| 五婷婷六月合| 欧美色图片88| 人人人舔人人人操人人人摸人人人97 | 丁香丁婷五月激情| 天天色粽合合合合合合合| 无码九九| 成人精品视频99在线观看免费| 婷婷五月天少妇| 大香蕉综合视频在线| 色婷婷色五月综合| 亚洲另类毛片| av在线免费播放| 久久久人妻人伦| 色噜噜狠狠色综无码久久合欧美| 开心日韩丁香婷婷五月| 91国产精品视频播放| 小视频久久久aaa| 婷婷精品综合| 婷婷在线播放| 天天精品视频在线观看视频| 中文成人在线| 97干在线视频| 777精品成人a v久久| 殴美97色| 91玖玖| 色黑鬼导航| 九九精品9| 欧美色性色好| 六月婷婷成人| 就爱日五月天| 黄色片区子| 色九月激情综合网| 五月激情综合性爱| 五月天偷拍| 天堂在线婷婷| 九九九九综合| 人妻肉射免费观看| 婷婷大乡焦噜噜| 91狠狠综合久久久久久| 五月婷婷激情久久| 欧美A级网站| 日本久久九| 午夜一区| 99热99这里只有精品| www.99热在线观看| 色婷婷伊人激情在线观看| 99啪啪网| 五月天在线视频尤物视频在线看| 婷丁香五月天| AA片在线观看视频在线播放| 五月婷婷|欧美| 六月丁香深深爱| 色婷另类| 伊人五月婷| 婷婷色导航| 久久精品视频在这里有| 五月香蕉综合| 色五月婷婷91| 九九九激情网| 久久婷婷五月综合| 一区二区乱码视频| 五月婷婷在线观看| 欧洲激情网站| 视频一二区| 91热久88| 成人做爰A片免费看视频| 女人被男人吃奶到高潮| 79色色免费| 国产亚洲99| 国产亚洲99久久| 色色婷婷综合| 天天日天天插| 久久香蕉网| 日日操天天操| 五月亭亭综合五码| 五月丁香va| 超碰chaompinm| 久久sp免费视频| 国模狼狼| 在线中文AV| 色婷婷丁香五月| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸 | 99超在线| 这里只有精品免费在线视频| 中文字幕av在线播放| 亚洲电影中文字幕| 我淫我色婷婷五月天激情四射| 五月丁香影院| 久久这里只有精品99| 97精品欧美91久久久久久久| 天天操天天操天天操天天操天天操| 天天操夜夜肏| 丁香5月啪啪| 五月丁香六月婷婷亚洲激情综合| 久久综合这里只有精品1| 中文字幕AV在线| 综合久久久| 91超级碰在线视频| 久久色五月| 亚州操操| 国产成人综合在线| 91碰在线| 亚洲激情综合网| 久久9久| 亚洲色综合| 色噜噜婷婷| 狠狠色色| 婷婷五月亚洲激情| sS丁香五月婷婷| WWW色综合| 精品视频99看在线视频| 五月天无码视屏播放| 五月天婷婷色播综合在线| 婷婷六月爽| 久久婷五月综合色| 天天添天天摸天天天天做| 热99视频| 亚洲五月色| 婷婷五月天综合小说网| 99热在这里只有精品| 五月天精品视频| 五月婷婷丁香五月天| 97影院一级片| 亚洲色在线观看| 99热99在线| 亚洲日韩一页精品发布| 韩国不卡AC视频| 久久久精品99| caop在线| 天天草婷婷五月| 国产乱妇乱子伦| 婷婷五月婷婷| 婷婷精品| 97在线观看| 婷婷六月丁综合| 在线99热| 五月丁香综合激情| 另类丁香五月天区图| 吾爱AV导航| 色婷婷丁香| 激情五月天啪啪| 日本人人xxx| 亚洲第一黄网| 九九九激情综合| 九九色天堂| 97av在线视频| 久久婷婷五月激情网站| 91精品久久久久、久五月天| 成人短视频在线| 桃色成人网| 月色色综合婷婷网| 婷婷激情丁香五月婷婷激情丁香五月婷婷| renrencaoav| 日日夜夜干| 五月婷色| 国产黄色一级片| 激情六月丁香综合| 婷婷色激情五月天| 久机视频这只有精品| 国产精品成av人在线视午夜片| 伊人久久大香蕉网| 丁香六月成人网| 婷婷五月综激情| 欧美私人家庭影院| 欧美色色色色色色色色色色| 丁香五月婷婷色五月| 开心婷婷中文字幕| 国产AV一区二区三区最新精品| 中文字幕亚洲-区久久99婷婷| 人人爱干人人爱草| 日本丁香五月| A片试看120分钟做受图片| 婷婷内射视频在线| 五月婷色啪| 色中色综合| 伊人久久大香线蕉AV最新午夜| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 五月婷婷六月激情| 久久亚洲婷婷| 色婷婷婷婷| 国产精品第一国产精品| www.91色| 欧美精品18| 久久激情中文| 五月天激情小说婷婷| 99热久| AV中文网| 亚洲激情 久久| 五月丁香久人妻中文| 婷婷五月综合色小姐小说| 激情五月图| 丁香九月婷| 丁香婷婷婷五月综合色情| www激情网| 亚洲色综合| 亚洲成人高清在线| 五月激情婷婷国产精品久久久久久| 成人综合网站| 九九国产精视频| 五月婷婷中文字幕| 久久天堂加勒比| 亚洲综合色棒| 激情AV网| 91视屏在线观看com.wwwvv| 五月婷婷影| 久热91精品| 婷婷五月天激情小说| 色婷婷在线视频观看| 国产伦亲子伦亲子视频观看| 丁香五月天信号| 色色网站在线| 91婷婷| 大香蕉九九| 五月丁香琪琪| 97干欧美| 午夜激情婷婷| 欧美精品999| 啪啪婷婷五月天激情| 狠狠干在线| 五月天激情网址| 婷婷五月天天爽| 婷婷久久伊人| 婷婷色片| 久久艹99| 另类专区在线观看| 五月天丁香网| 丁香五月色| 婷婷丁香视频在线观看免费| 五月天婷婷影院| 99热欧美在线观看| 婷婷五月花| 亚洲射激情| 狠狠一日| 激情文学五月丁香六月婷婷| 色丁香五月婷婷综合久久| 99热在线成人网站| 激情综合网站| 狠狠五月激情丁香六月| av在线观看网站| 夜夜撸天天操| 婷婷婷色五月| 玖久久网站| 小视频久久久aaa| 五月激情影院| 日日操夜夜擼| 五月婷婷亚洲综合在线| 婷婷爱爱蜜臀天天操| 久久您您综合网| 色综合中文综合网| 久久婷婷艹| 久草网大香视频| 99热大全在线观看| 9久热这里只有精品| 香蕉综合在线| 五月天夜夜爱夜夜操| 五月激情网站| 99久久a线观| 超碰日韩成人| 超碰精品国产首页| 无码色| 另类图片天天影视在线观看| 99操逼| 日本激情五月天‘| 九热久| 激情第四色| 日日狠狠久久偷偷四色综合免费| 五月婷婷草| 色婷婷丁香五月| 日夜夜久久| 91婷婷丁香| 色吧婷婷五月亚洲| 色噜噜五月天| 中文字幕丁香五月| 欧美精品A片一区在线观看| 日韩成人网址| 五月丁香基地| 精品婷婷| 国产亚洲99久久精品熟| 大香蕉婷婷色| 亚洲免费99| 五月丁香综合啪啪| 免費观看aV在线网址| 色色吧综合| 欧美色欲色欲天天天www| 爽极品色| 20253AV| 99精品综合视频| 日韩九九| 激情婷婷五六月天| 色色五月天婷婷丁香| 熟女人妻一区二区三区免费看| 婷婷五月天视频| 五月婷婷m| 99操碰| 操日本色| 免费看欧美成人A片无码| www.91在线观看| 淫荡工a| 久久久久久久久久久久久久人妻视频 | 精品乱码久久久久| 九九这里有精品| 开心色色五月天综合| 五月天婷婷爱| 丁香五月开心婷婷| 99热精品网| 97视频91| 人妻中文字幕网| 淫五月停停| 日日夜夜干| 激情婷婷久久| 99re热视频这里只精品5| 开心四月婷婷在线色播播| 成 人片 黄 色 大 片| 丁香五月欧美午夜视频| 精品少妇蜜臀91| 婷婷五月天成人五月天| 欧美色图天堂网色| 96色婷婷| 超碰人人摸人人操| 久久五月婷| 婷婷伊人| 9久国产精品| 欧美综合激情丁香五月六月婷| 九九热在线视频,| 激情美女五月天| 激情综合无码| 99re在线精品视频| 五月婷婷色啪| 激情婷婷视频在线| 97自拍视频网| 1024成人免费看| 亚洲综合色成丁香五月色| 色噜噜狠狠色综无码久久合欧美| 五月婷av| 久久亚洲婷婷| 久9热在线视频| 久碰婷婷视频| 欧美视频五区| 久久婷婷五月天激情四射| 色亭亭五月天丁香综合AV - 百度 - 百度| 色色网站免费观看| 激情综合激情五月| 激情黄色五月天| 狠狠狠激情网| 色 五月婷婷基地| 99热只有国产在线精品| 六月丁香婷婷色69| 五月婷婷欲色| 日韩在线五月天婷婷| 丁香五月婷婷在线视频| 五月天黄色激情小说| 丁香五月停停av| 色丁香影院| 精品乱码久久久久| 激情综合一| 婷婷大乡焦噜噜| 91热在线| 色综合色色色| 激情五月婷| 日韩黄在免| 亚洲区在线| 狠狠色丁香婷婷| 99在线公开视频| 丁香婷婷久久 | Y11111111111少妇电影院| 亚洲天堂制| 热99在线精品| 久久综合中文| 综合综合色色| 精品成人无码A片观看香草视频| 五月婷婷激情综合拍| 草综合14| 9久热| 国产精品美女久久久久AV超清| 婷婷五月免费观看| 欧洲激情五月天| 狠狠干综合网| 亚洲视频操| 丁香五月婷婷色| aaaa久久| 五月天婷婷爱| 丁香五月在线伊人| 这里只有精品9| 色色色地址| 激情五月婷婷| 九九99热精品| 97久久人人| 操逼福利视频| 五月丁香六月欧美综合网站| 网色99| 亚洲A片成人无码久久精品青桔| 婷婷综合久久综合| www.99久| 最新亚洲色色网| 婷婷五月天在线观看| 丁香六月综合激情| 婷婷五月丁香性爱| 大香网伊人久久综合| www夜夜操wwwcon| AV网站免费在线| www.色五月| 久碰婷婷视频| 人妻videos人妻高清| 婷婷爱五月| 日韩精品AV一区二区三区| 一起草aV| 色综合播放| 丁香五月激情网| 夜夜嗨一区二区三区直播内容 | 六月丁香VA| 国产日比| 操碰久| 九九热这里只有国产精品| 殴美激情综合网| 亚洲狠狠丁香婷婷香蕉| 日本色道视频网站| 天天天操天天天日| 九九热超碰| 色情五月天丁香社区| 欧美Va在线| 婷婷社区五月天| 综合 蜜月 婷婷| 内射激情在线| 九九久久综合| 日韩无码系列| 婷婷激情六月中文| 五月天激情小说| 啪精品| 丁香社区婷婷五月| 丁香五月天婷婷激情| 五月婷婷六月综合| 婷婷深爱五月丁香网| 五月色网| 99九无网码| 综合激情站| 97超碰婷婷五月天| 天天摸天天舔在线视频| 中文成人在线| 97干资源在线观看| 五月丁香综合久久| 国产激情综合五月久久| 丁香五月婷婷激情尤物| 91人人爽久久涩噜噜噜| 任你躁XXXXX麻豆精品| 99热这里只有精品268| 五月丁香啪综合| 怡红院91a√| 十月丁香九月婷婷综合| 久久97久久99久久综合欧美| 久色视频在线| www色色com| www999日韩精品| 久久综合五月天| 色婷婷另类| 2025年最新亚洲在线欧美| 亚洲精品一区中文字幕乱码| 99久久66| 开心激情综合| 色综合色综合网| 婷婷天堂综合| 99热爱爱干干日| 久久网日本| 婷婷99狠狠躁天天躁中| 99色精品| 成人五月天丁香婷| 国产午夜精品一区二区| av第一二区| 天天干电影| 国产综合81p| 少妇搡BBBB搡BBB搡毛茸茸 | 99偷拍视频在线日本| 夜夜撸夜夜骑| 亚洲熟女乱色综合亚洲网站| 色欧洲| 五月激情婷婷国产精品久久久久久| 草综合14| 在线观看免费狠狠色丁香香综合| 狼人婷婷综合| WWW.99热| 亚洲另类在线观看|