精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python 為什么不支持 switch 語句?

開發 后端
主要是因為 switch 在其它語言中太常見了,而 Python 卻不支持,這樣的獨特性本身就值得關注,而回答這個問題,也能更加看清 Python 在程序設計上的理念,了解 Python 在語法設計中的決策過程。

[[345017]]

在這篇文章里,我們會聊一聊為什么 Python 決定不支持 switch 語句。

為什么想要聊這個話題呢?

主要是因為 switch 在其它語言中太常見了,而 Python 卻不支持,這樣的獨特性本身就值得關注,而回答這個問題,也能更加看清 Python 在程序設計上的理念,了解 Python 在語法設計中的決策過程。

本文除了會詳細分析 PEP-275 和 PEP-3103,還會介紹到 Python 最新的發展動態(PEP-622),即可能要引入的模式匹配(pattern matching)語法,相信這個話題會開闊大家的眼界,從而對 switch 語法有更為全面的認識。

1、switch 是什么?

在開始正題之前,我們需要先聊聊 switch 是什么?

有些同學可能會第一時間想到它……

[[345018]]

 

喂~喂~,麻煩收收心,別總想著游戲啦,我們要說的是編程語言中的 switch 語句。

一般而言,switch 的語法格式如下:

  1. switch(expression){ 
  2.     case value1: 
  3.        // 語句 
  4.        break; // 可選 
  5.     case value2: 
  6.        // 語句 
  7.        break; // 可選 
  8.     default: // 可選 
  9.        // 語句 

使用流程圖來表示,大概是這樣的:

 

它的用法不難理解:switch 語句的值滿足哪一個 case 情況,就會執行對應的代碼塊,執行時遇到 break 就跳出,否則就繼續執行下一個 case 分支;一般會在最后放一個 default 分支,作為兜底。

大多數語言都提供了 switch 語句或者極其相似的東西,例如,在 C/C++/Java /Go 等靜態語言中,它們都支持 switch-case 結構;在 Ruby 中有類似的 case-when 結構,在 Shell 語言中,有相似的 case-in 結構,在 Perl 中,有 switch-case-else……

switch 語句的好處是支持“單條件多分支”的選擇結構,相比 if-else 的二分選擇結構,在某些時候會更為簡潔清晰。

但是,在 Python 中,我們看不到 switch-case 或者相近的語法結構,這是為什么呢?

2、Python 為什么不支持 switch?

官方文檔中有一篇 FAQ 包含了這個問題:Why isn’t there a switch or case statement in Python?

 

FAQ 即 Frequently Asked Questions 的縮寫,表示常見問題,官方列了 27 個常見問題,完整清單在此:https://mp.weixin.qq.com/s/zabIvt4dfu_rf7SmGZXqXg

該文檔給出了幾個建議,告訴了我們幾個 switch/case 的替代方案:

  • 使用 if-elif-else 條件判斷語句
  • 使用字典,將 case 值與調用的函數映射起來
  • 使用內置 getattr() 檢索特定的對象調用方法

曾有人提出過一些提案(即 PEP-275 和 PEP-3103),想給 Python 引入 switch 語法,然而,對于“是否以及如何進行靶場測試”,大家沒有達成一致的共識。

靶場測試,即 range test,指的是對武器彈藥的技術性能作各種測試驗證,與藥物的臨床試驗一樣,都是在最終產品交付前的一項關鍵性測試。

官方文檔對于“為什么 Python 不引入 switch”的解釋,實際上來源于 Python 之父 Guido van Rossum 在 PEP-3103 中的意見:

出處:https://www.python.org/dev/peps/pep-3103

 

A quick poll during my keynote presentation at PyCon 2007 shows this proposal has no popular support. I therefore reject it.

我在 PyCon 2007 的主題演講中做了一個快速的民意調查,結果表明這個提案沒有得到廣泛的支持。因此,我拒絕了它。

簡而言之,PEP 提案有了,語法實現也有了雛形,但是核心開發者們似乎沒有達成一致意見,最終導致提案流產了。

3、PEP-275 與 PEP-3103 說了什么?

PEP-3103 是在 2006 年提出的,PEP-275 則是在 2001 年提出的,它們的共同之處是提出了引入 switch 語句的某種必要性、分析了好幾種備選的實現方案,然而,結局是都被拒絕了。

 

出處:https://www.python.org/dev/peps/pep-0275

那么,我們就先來回顧一下核心開發者們都做出了哪些討論,看一看如果 Python 要實現 switch 結構,會是怎么樣子的?(PS:PEP 里還涉及其它內容,本文只摘取與 switch 直接相關的部分)

PEP-275 提出的語法結構如下:

  1. switch EXPR: 
  2.     case CONSTANT: 
  3.         SUITE 
  4.     case CONSTANT: 
  5.         SUITE 
  6.     ... 
  7.     else
  8.         SUITE 

其中 else 分支是可選的,如果沒有它,并且前面的分支都不滿足的話,就什么也不做。另外 case 值 constant 支持不同類型,因為 expr 表達式的類型是動態的。

PEP-275 還提出讓 switch 不支持掉落(fall-through)行為,即每個 case 分支相互獨立而完整,不用像 C 語言那樣需要寫 break。

該 PEP 還列舉了一些其它的 issue:

  • 重用現有關鍵字,不引入“switch”和“case”
  • 使用新的關鍵字,避免與 C 的 switch 概念混淆
  • 支持單分支多值選擇(例如:case 'a', 'b', 'c': …)
  • 還有建議支持范圍取值判斷(例如:case 10..14: …)

除了首選方案,該 PEP 還記錄了幾種風格各異的語法方案:

  1. case EXPR: 
  2.     of CONSTANT: 
  3.         SUITE 
  4.     of CONSTANT: 
  5.         SUITE 
  6.     else
  7.         SUITE 
  8.  
  9. case EXPR: 
  10.     if CONSTANT: 
  11.          SUITE 
  12.     if CONSTANT: 
  13.         SUITE 
  14.     else
  15.         SUITE 
  16.  
  17. when EXPR: 
  18.     in CONSTANT_TUPLE: 
  19.         SUITE 
  20.     in CONSTANT_TUPLE: 
  21.         SUITE 
  22.     ... 
  23. else
  24.      SUITE 

PEP-275 記錄下了不少重要的思路和問題,為 PEP-3103 的出現做了很好的鋪墊。

那么,我們再來看看由 Guido 編寫的 PEP-3103 說了些什么吧。

它首先認可了 PEP-275 中的兩個基礎設定,例如,實現“隱式的 break”,不讓 case 分支出現 fall-through 這種轉移控制權的情況(其它語言似乎都要求顯式地寫 break);else 分支是可選的,復用 else 關鍵字,而不用引入“default”。

對于 PEP-275 提倡的那種風格,Guido 比較認可,但也認為它的問題是縮進層次太多,因此建議減少代碼分支縮進的空格數,例如本來縮進 4 空格,改為縮進 2 空格。

PEP-3103 還列舉了另外三種實現方案,分析了它們的差異以及問題,具體內容從略,這里只給大家看看它們的風格:

  1. case 分支不縮進 
  2. switch EXPR: 
  3. case EXPR: 
  4.     SUITE 
  5. case EXPR: 
  6.     SUITE 
  7. .... 
  8. else
  9.     SUITE 
  10.  
  11. # switch 語句后不加冒號 
  12. switch EXPR 
  13. case EXPR: 
  14.     SUITE 
  15. case EXPR: 
  16.     SUITE 
  17. .... 
  18. else
  19.     SUITE 
  20.  
  21. # 省略 case 關鍵字 
  22. switch EXPR: 
  23.     EXPR: 
  24.         SUITE 
  25.     EXPR: 
  26.         SUITE 
  27.     ... 
  28.     else
  29.         SUITE 

在基礎語法之外,Guido 花了很多篇幅來討論擴展語法(Extended Syntax),即在一個 case 分支中實現匹配多個值的復雜情況:

  1. case EXPR, EXPR, ...: 
  2.  
  3. # Guido 優選的 
  4. case in EXPR_LIST: 
  5.  
  6. case *EXPR: 
  7.  
  8. case [*]EXPR, [*]EXPR, ...: 
  9.  
  10. case *(EXPR, EXPR, ...): 

他重點考慮到的問題包括:switch 中表達式的結果是元組或可迭代對象的情況、case 的值被看成元組解包的情況、在 case 分支作“*”星號操作……

接著,Guido 又用了非常非常多的篇幅來分析該如何實現 switch,其中討論到的主要思路有:

  • 使用等價的 if-elif 鏈來定義 switch 語句(可能會做些優化)
  • 同上,另外所有表達式都必須是可哈希的(hashable)
  • 看作是預先計算的字典的分派(dispatch)

PEP 中這部分的內容非常多,因為在每個思路上,Guido 還考慮到了好幾種實現路徑,這導致了他在復雜分析后的結論是:It is too early to decide( 現在做決定為時尚早)。

閱讀完 PEP-3103 后,我總體的感覺是:Guido 的思路非常發散、層次豐富,但是,缺少了他在面對其它問題時那“快刀斬亂麻”式的洞察力。

也就是說,在諸多的可能性方案中,他力求面面俱到,最終無法說服自己做出一個獨裁的決定。阻力主要來自于他自己,而不是其他人。

不過,之所以會出現這種情況,也許跟他的預設立場有關:他似乎認為“Python is fine without a switch statement”,因此盡管寫了很長的 PEP,但只是在把問題復雜化,把議題擱置起來。

最后,他在 PyCon 上做了一個小范圍調查,借此“名正言順”地拒絕了自己發起的 PEP,試圖堵住眾人的悠悠之口……

4、未來會有 switch 語句么?

歸結起來,之所以 Python 沒有 switch 語句,原因有:switch 的實現細節/功能點未經敲定、沒有 switch 也挺好的、有其它不錯的方法替代 switch、Guido 的小任性……

但是,我們還是要追問一句:未來會有 switch 語句么?或者類似的多分支選擇結構?

為什么要有此一問呢?原因是有太多語言自帶 switch 語句,而且也有很多人嘗試編寫提供 switch 功能的庫(我記得在 PyCoder's Weekly 里曾見到過兩次)。

我(Python貓)本人自始至終并不喜歡 switch,幾乎可以肯定地說,Python 未來也不會有 switch,但是,它很可能會引入一個類似于 switch 且更為復雜的語法結構!

2020 年 6 月,PEP-622 被提出了,它建議引入在 Scala、Erlang 和 Rust 等語言中的模式匹配語法(pattern matching)。

 

截至 2020 年 10 月,該 PEP 已被分解成另外三個 PEP(634-636),目前都處于草案階段??紤]到核心開發者們的參與情況以及話題討論的情況,這些提案極有可能會在未來版本(比如正在開發中的 3.10)中實現。

以一個求平均數的函數為例,模式匹配語法可以實現成這樣:

  1. def average(*args): 
  2.     match args: 
  3.         case [x, y]:           # captures the two elements of a sequence 
  4.             return (x + y) / 2 
  5.         case [x]:              # captures the only element of a sequence 
  6.             return x 
  7.         case []: 
  8.             return 0 
  9.         case x:                # captures the entire sequence 
  10.             return sum(x) / len(x) 

match-case 結構神似于 switch-case 結構,然而它基于模式(pattern)而非表達式(expression),因此有更多待考慮的細節問題,也有更為廣闊的應用空間。

對此話題感興趣的讀者,建議去查閱這幾個新的 PEP。

最后,讓我們回到標題中的問題:Python 為什么不支持 switch 語句?

官方文檔的 FAQ 對此問題有一個解答,告訴我們有幾個不錯的替代寫法,同時也留下了一條線索:曾有 PEP 提議引入 switch,只是沒有成功實現。

沿著這條線索,本文拆解了 PEP-275 和 PEP-3103 這兩篇文檔,帶大家看到了 Python 社區里提出過的風格各異的 switch 方案,以及諸多的懸而未決的問題。

 

最后,我們還關注到了最新的 PEP-622 的動態,看起來 switch 的“孿生兄弟” match 語法有望引入到 Python 中!switch 話題的討論似乎要終止了,但是另一個更大的話題正在進行中!

作者簡介 

豌豆花下貓,生于廣東畢業于武大,現為蘇漂程序員,有一些極客思維,也有一些人文情懷,有一些溫度,還有一些態度。

本文轉載自微信公眾號「Python貓」,可以通過以下二維碼關注。轉載本文請聯系Python貓公眾號。

 

責任編輯:武曉燕 來源: Python貓
相關推薦

2021-02-01 13:53:53

StringlongJava

2020-07-22 08:01:41

Python開發運算符

2021-01-22 15:31:47

JavaSwitchString

2021-10-27 07:15:36

Go 循環引用

2021-04-20 19:23:07

語法switch-casePython

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語言設計

2021-08-02 09:31:20

Python工具代碼

2023-01-28 08:05:32

轉換Go泛型

2024-05-28 08:55:52

2024-01-01 08:10:40

Go語言map

2024-01-05 08:45:35

Go語言map

2009-03-12 08:42:38

AndroidWMMTK

2021-11-08 11:02:01

Go函數重載

2021-06-11 00:03:31

鴻蒙智能手機

2021-07-13 08:09:34

微博推特評論

2009-03-11 17:32:22

聯發科WMAndroid

2014-06-05 15:16:49

Linux開源Flash

2024-03-08 08:51:59

Gomain函數

2011-12-09 20:28:50

點贊
收藏

51CTO技術棧公眾號

26uuu亚洲| 久久久久久穴| 亚洲国产精品yw在线观看 | 国产精品色悠悠| 一区二区国产精品精华液| 第四色在线一区二区| 91福利视频久久久久| 桥本有菜av在线| 三级做a全过程在线观看| 免费成人在线网站| 久久久这里只有精品视频| 最新中文字幕av| 欧美理伦片在线播放| 欧美精品乱人伦久久久久久| 一二三四视频社区在线| 在线视频第一页| 高清久久精品| 日韩欧美亚洲范冰冰与中字| a级黄色片网站| 色视频免费在线观看| 国产精品主播直播| 国产精品日日摸夜夜添夜夜av| 久久免费视频6| 欧美大片aaaa| 亚洲天堂免费在线| 日韩av手机在线播放| 中文幕av一区二区三区佐山爱| 偷拍一区二区三区| 色一情一乱一乱一区91| 国产黄在线看| 久久影院午夜论| 国产欧美一区二区三区另类精品 | 亚洲欧美激情视频| 成年人小视频在线观看| 国产精品美女久久久久人| 91极品美女在线| 成人av一级片| 国产粉嫩在线观看| 亚洲第一主播视频| 青草网在线观看| 羞羞电影在线观看www| 国产精品的网站| 亚洲国产欧美一区二区三区不卡| 九色视频网站在线观看| 91小视频免费观看| 久久久久久久久久久久久久久久av| 国产chinasex对白videos麻豆| 看片的网站亚洲| 国产日韩精品电影| 自拍偷拍福利视频| 蜜桃av噜噜一区二区三区小说| 日本高清+成人网在线观看| 久久精品一二区| 国产婷婷精品| 欧美综合一区第一页| 日本特级黄色片| 久久人人97超碰国产公开结果| 欧美做受高潮1| 不卡av电影在线| 蜜桃在线一区二区三区| 国产伦精品一区二区三区精品视频 | 天堂在线视频免费| 久久久久国产一区二区三区四区| 欧美二区在线| av在线免费一区| 国产精品国产三级国产aⅴ无密码| 国产精品jizz在线观看老狼| 超碰在线免费播放| 一区二区三区欧美| 欧美精品99久久| 亚洲成人短视频| 欧美日韩国产一级片| 亚洲一二三不卡| 豆花视频一区二区| 亚洲欧美在线一区二区| 国产调教在线观看| 欧美成人精品| 欧美亚洲免费电影| 中文天堂在线资源| 国产激情一区二区三区| 国产尤物91| 春暖花开成人亚洲区| 亚洲精品乱码久久久久久久久| 免费毛片网站在线观看| 亚洲天堂一区二区| 日韩一区二区三区免费看| 水蜜桃av无码| 羞羞答答成人影院www| 欧美激情国产精品| 日韩 国产 欧美| 国产综合色视频| 久久99精品国产99久久| 五月香视频在线观看| 一区二区三区 在线观看视频| 一区二区传媒有限公司| 国产欧美在线观看免费| 亚洲国产另类久久精品 | 亚洲女爱视频在线| 国产在线青青草| 国产精品日本一区二区三区在线| 亚洲国产一区二区三区在线观看| 潘金莲一级黄色片| 香蕉精品999视频一区二区 | 美女主播精品视频一二三四| 少妇久久久久久| 天堂网av手机版| 国产美女视频一区| 图片区小说区区亚洲五月| 欧美人与牲禽动交com| 欧美午夜精品久久久久久孕妇| 亚洲精品无码一区二区| 亚欧美无遮挡hd高清在线视频| 日本最新高清不卡中文字幕| 国产成a人亚洲精v品无码| 国产日韩欧美麻豆| www.99热这里只有精品| 美女一区二区三区视频| 好看的中文字幕在线播放| 欧美视频在线一区二区三区| 黄色av网址在线观看| 91精品国产自产在线观看永久∴| 日韩av大片免费看| 天堂v在线观看| 一区二区三区蜜桃网| 国产又黄又猛的视频| 欧美亚洲国产精品久久| 日韩av手机在线看| 深夜福利在线观看直播| 亚洲国产日韩在线一区模特| 1314成人网| 欧美好骚综合网| 国产精品伦子伦免费视频| 国产永久免费高清在线观看视频| 偷偷要91色婷婷| 日本一级片在线播放| 亚洲片区在线| 丁香婷婷久久久综合精品国产 | www.色视频| 18成人在线视频| 看看黄色一级片| 水蜜桃久久夜色精品一区| 国产精品女主播视频| 国产一级片在线| 日本韩国欧美三级| 精品人伦一区二区三电影| 免费看黄裸体一级大秀欧美| 农村寡妇一区二区三区| 波多野结衣亚洲| 亚洲欧美国产一区二区三区| 精品国产乱子伦| 久久免费精品国产久精品久久久久| 自慰无码一区二区三区| 色老板在线视频一区二区| 午夜伦理精品一区 | 综合网日日天干夜夜久久| 在线免费观看一区二区| 国产精品人人做人人爽人人添| 中文久久久久久| 欧美激情黄色片| 2022国产精品| mm视频在线视频| 亚洲欧美另类在线观看| 亚洲视屏在线观看| ●精品国产综合乱码久久久久| 成人三级做爰av| 国产欧美日韩一区二区三区在线| 欧美一区二区三区电影在线观看 | 日韩国产欧美视频| 亚洲欧洲一区二区| 欧美h版在线观看| 久久久视频精品| 免费在线性爱视频| 欧美日韩日日骚| 精品无码m3u8在线观看| 久久久精品国产免费观看同学| 欧美成人三级在线播放| 欧美三级黄美女| 免费电影一区| 国产亚洲精aa在线看| 97精品在线观看| 在线免费观看黄色| 欧美精品一区二区三区高清aⅴ| 亚洲图片在线视频| 亚洲色图视频网站| 免费成人深夜夜行p站| 久久国产精品99精品国产| 大胆欧美熟妇xx| 国产伦精品一区二区三区视频 | 亚洲伦理在线精品| 中国美女乱淫免费看视频| 日韩和的一区二区| 大陆av在线播放| 精品一区二区三区在线| 成人免费视频视频在| 欧美精品总汇| 欧美激情综合色| 99se视频在线观看| 亚洲精品白浆高清久久久久久| 一级黄色大毛片| 五月天欧美精品| 国产极品美女在线| 久久亚洲综合av| 午夜免费福利影院| 国产曰批免费观看久久久| av片中文字幕| 在线观看视频日韩| 小说区视频区图片区| 九九视频免费观看视频精品 | 亚洲黄色av片| 天堂精品中文字幕在线| 草草视频在线免费观看| 91精品1区| 一区二区av| 成人羞羞网站入口免费| 精品乱码一区| 粉嫩一区二区三区四区公司1| 国产色视频一区| 亚洲四虎影院| 日本免费一区二区三区视频观看| 免费男女羞羞的视频网站在线观看| 日韩在线中文字| 精品成人一区二区三区免费视频| 欧美成人三级电影在线| 国产有码在线观看| 欧美午夜片在线看| 色婷婷久久综合中文久久蜜桃av| 欧美性猛交xxxx偷拍洗澡| 国产在线免费视频| 亚洲色欲色欲www在线观看| 一级二级黄色片| 国产夜色精品一区二区av| 97人妻精品一区二区三区免费| 国产精品一色哟哟哟| 天天操精品视频| 狠狠网亚洲精品| 欧美美女性视频| 精品一区二区三区蜜桃| gai在线观看免费高清| 美女视频第一区二区三区免费观看网站| av无码精品一区二区三区| 久久激情婷婷| 激情婷婷综合网| 男女性色大片免费观看一区二区| www.亚洲高清| 久久99久久99| 在线视频日韩欧美| 国产老女人精品毛片久久| 91蝌蚪视频在线| 国产成人精品免费在线| 欧美一级大片免费看| 成人免费视频国产在线观看| 亚洲精品鲁一鲁一区二区三区| 国产精品一区在线观看你懂的| 自拍视频第一页| www.成人网.com| 五月婷婷综合在线观看| 久久久久久久精| www.黄色com| 亚洲欧美日韩小说| 国产精品第72页| 欧美日韩中文在线观看| 丰满少妇xoxoxo视频| 欧美亚洲一区三区| 国产一区二区三区三州| 日韩欧美一级在线播放| 日韩一区二区三区不卡| 亚洲日韩第一页| av文字幕在线观看| 97精品视频在线| 99re久久| 国产高清一区视频| 久久不见久久见中文字幕免费 | 国产精品日韩欧美一区二区三区| 欧美大片网址| 亚洲国产欧美不卡在线观看 | 欧美激情在线有限公司| 综合毛片免费视频| 国产免费久久av| 精品视频高潮| 在线观看一区二区三区三州| 亚洲网址在线| 网站一区二区三区| 国产成人免费xxxxxxxx| 无码国产69精品久久久久同性| 中文字幕五月欧美| 日韩精品成人一区| 欧美日韩精品免费观看视频| 丰满人妻一区二区| 亚洲最大中文字幕| 免费在线观看的电影网站| 国产精品福利观看| gogo人体一区| 日本黄色播放器| 久久久成人网| 免费观看一区二区三区| 国产蜜臀av在线一区二区三区| 青青草在线观看视频| 欧美在线不卡视频| 秋霞视频一区二区| www.日韩av.com| 成人va天堂| 国产丝袜不卡| 你懂的亚洲视频| 国产高潮免费视频| 91麻豆福利精品推荐| 免费视频网站www| 欧美日韩免费观看一区二区三区 | 中文字幕一区三区| 日日夜夜狠狠操| 亚洲国产欧美一区| 最新国产在线拍揄自揄视频| 国产精品久久久久久影视| 欧美国产极品| 国产不卡一区二区视频| 国产一区二区看久久| 美女网站视频色| 欧美性一区二区| 能在线看的av| 欧美一级电影久久| 里番精品3d一二三区| 国产爆乳无码一区二区麻豆| 另类小说综合欧美亚洲| 久久久久久久久久久久久久久| 精品久久久久久中文字幕大豆网| 亚洲国产精品二区| 欧美国产日韩视频| 欧美成人精品一级| 大桥未久一区二区| 经典三级在线一区| 希岛爱理中文字幕| 7777精品伊人久久久大香线蕉最新版| 高清福利在线观看| 国产精品igao视频| 久久99影视| 黄色aaa级片| 国产精品久久99| 亚洲一级黄色大片| 久久婷婷国产麻豆91天堂 | 欧美tk—视频vk| 亚洲小说区图片区都市| 51成人做爰www免费看网站| 国产精品88久久久久久| 99精品999| 亚洲乱码国产乱码精品精可以看 | 亚洲四区在线观看| 国产女主播福利| 欧美精品xxx| 日韩av三区| 欧美极品欧美精品欧美图片| 26uuu色噜噜精品一区| 三级网站在线播放| 色播久久人人爽人人爽人人片视av| av在线播放一区| 在线一区亚洲| 国产成a人亚洲精品| 日韩精品无码一区二区| 亚洲精品视频免费| 日本成人福利| 三级在线免费观看| 成人av资源在线观看| 亚洲 欧美 中文字幕| 在线观看中文字幕亚洲| 亚洲在线资源| 久久亚洲精品无码va白人极品| 91免费视频大全| 中文字幕 视频一区| 久久99精品国产99久久6尤物| 欧美三级午夜理伦三级小说| 国产男女激情视频| 亚洲色图欧美偷拍| 四虎免费在线观看| 国产精品久久久久免费a∨大胸| 亚洲欧美在线专区| 一级做a爰片毛片| 欧美乱妇15p| 国产三级电影在线播放| 手机在线观看国产精品| 国产剧情一区二区| 久久夜色精品国产噜噜亚洲av| 色av中文字幕一区| 久久99偷拍| 在线观看免费污视频| 亚洲无人区一区| 成人免费视频| 国产一区喷水| 国产真实乱对白精彩久久| 日韩av在线播放观看| 日韩在线小视频| 天天躁日日躁成人字幕aⅴ| 国产传媒免费观看| 欧美性感美女h网站在线观看免费| 亚洲麻豆精品| 久久日韩精品| 国产黄色精品视频| 国产九色91回来了| 2019中文字幕在线免费观看| 国产精品久久久乱弄 | 精品国产一级毛片| 亚洲av成人无码一二三在线观看| 欧美情侣在线播放|