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

細數 Python 的「八宗罪」,你可認同?

開發 開發工具 后端
「I hate Python」,作者表示。他對 Python 厭惡至極。即使有現成的 Python 代碼可用,他也寧愿用 C 語言重寫。為了系統地吐槽 Python,作者專門寫了這篇博客,細數 Python 的「八宗罪」。

本文作者有一群 geek 朋友,經常一起討論技術話題,有時候也會談到編程語言。「I hate Python」,作者表示。他對 Python 厭惡至極。即使有現成的 Python 代碼可用,他也寧愿用 C 語言重寫。為了系統地吐槽 Python,作者專門寫了這篇博客,細數 Python 的「八宗罪」。

這個話題已經在 Hacker News 上引發了熱烈的討論(評論 400+),感興趣的讀者可以去圍觀或參與一下。

Hacker News 討論:https://news.ycombinator.com/item?id=18706174

[[252953]]

1. 版本

如果要安裝一個默認的 Linux 操作系統,那你很有可能需要安裝多個版本的 Python:Python2、Python3 甚至是 3.5、3.7。原因在于:Python3 無法與 Python2 完全兼容。甚至一些用小數表示的版本(如 3.5、3.7)也明顯缺乏向后的兼容性。

我完全贊成往編程語言中添加新的功能,我甚至不介意淘汰一些舊的版本。但 Python 卻要分開安裝。我的 Python 3.5 代碼不適用于 Python 3.7 安裝版本,除非我特意將其導入 3.7。很多 Linux 開發者都覺得導出太麻煩,因此安裝 Ubuntu 的時候會一并安裝 Python2 和 Python3——因為有的核心功能需要前者,而有的需要后者。

向后兼容性的缺乏和各自為政的版本通常會為其敲響喪鐘。Commodore 創造了***批家用電腦(比 IBM PC 和蘋果都要早很多)。但 Commodore PET 不能與后續的 Commodore CBM 兼容。CBM 又不與 VIC-20、Commodore-64、Amiga 等兼容。因此,你要么選擇花很多時間將代碼從一個平臺導到另一個,要么選擇放棄這個平臺。(Commodore 今天何在?早被用戶拋棄涼涼了……)

類似地,Perl 也火過一陣。但 Perl3 與 Perl2 的很多代碼也不兼容。社區罵聲一片,于是一些好的代碼導了出來,其他的則被拋棄了。Perl4 也是如此。等 Perl5 出來的時候,人們干脆改用另一種更穩定的編程語言。如今,只有一小部分人還在頻繁使用 Perl 來維持之前的項目。但已經沒有人用 Perl 創建新的大項目了。

同理,Python 的每個版本也都存在谷倉效應。之前的版本還要留著,最終造成手里有一堆舊的無用 Python 代碼,因為大家都不想花時間將其移到***版上。據我所知,沒有人為 Python2 創建新代碼了,但我們還留著它,因為沒有人想將所需代碼移到 Python3.x 中。Python 2.7、3.5、3.6、3.7 的文檔都還在 Python 官網上積極維護著,因為他們無法下決心棄用之前的代碼。Python 就像一種僵尸編程語言——已經死掉的部分還在以行尸走肉的方式存在著。

2. 安裝

很多軟件包都可以幫你輕松地運行 apt、yum、rpm 或其他一些安裝庫,并獲得***版本的代碼。但 Python 并非如此。如果用「apt-get install python」安裝,你都不知道自己安的是哪個版本,它可能也無法與你所需的所有代碼兼容。

因此,你要安裝你需要的那版 Python。我的其中一個項目用到 Python,但必須用 Python3.5。所以***,我的電腦安裝了 Python2、Python2.6、Python3 及 Python3.5。其中兩個來自操作系統,一個用于項目,另外一個服務于出于其他原因安裝的無關軟件。雖然都是 Python,但此 Python 非彼 Python。

如果你想安裝 Python 包,你應該使用「pip」(Pip Installs Packages)。但由于系統上有一堆 Python,你要注意使用正確版本的 pip。否則,「pip」可能運行「pip2」,而不是你需要的「pip3.7」。(如果名稱不存在,你需要為 pip3.7 指定明確的真實路徑)

一位隊友建議我配置自己的環境,這樣的話每種軟件都可以使用 Python3.5 的 base 環境。在我需要用 Python3.6 開展另一個項目之前,這種做法是非常行得通的,但是需要 Python 3.6 就得創建另外一個環境。兩個項目,兩版 Python,一點都不會混,真的(用生命在假笑)。

pip 安裝程序將文件放置在用戶的本地目錄。安裝系統級的庫時不用 pip。Gawd 不允許你在運行「sudo pip」時出錯,因為那會毀了你的整個電腦!運行 sudo 可能會使一些軟件包在系統級別安裝,有些是為錯誤版本的 Python 安裝的,而你的主目錄中的一些文件可能最終歸 root 所有,因此未來的非 sudo pip 安裝可能會因權限問題而失敗。不要這樣做。

這些 pip 模塊由誰來維護呢?當然是社區。也就是說,沒有明確的所有者,也沒有強制性的來源鏈或責任鏈。今年早些時候,PyPI 的一個版本中發現了一個竊取 SSH 憑證的后門。這也是意料之中。(出于同樣的原因,我不用 Node.js 和 npm;我不信任他們的社區項目。)

3. 句法

我非常主張代碼的可讀性要強。乍一看,Python 的可讀性似乎不錯。但當你開始創建大型代碼庫的時候你就不會這么想了。

大多數編程語言使用某種符號來標識范圍——函數的開始和結束位置、條件語句中包含的操作、變量的定義范圍等。C 語言、Java、JavaScript、Perl 和 PHP 都用 {...} 來定義范圍,Lisp 使用 (...)。Python 呢?它用空格!如果你要定義復雜代碼的范圍,你可以縮進接下來的幾行代碼,縮進結束時,該范圍也截止。

Python 手冊說,你可以用任意數量的空格或制表符來定義范圍。但是,每次縮進***使用四個空格!如果你想縮進兩次進行嵌套,使用八個空格!Python 社區已經對此進行標準化,即使 Python 手冊中并沒有明文規定。這個社區就喜歡用四個空格。所以,除非你不打算將自己的代碼向任何人展示,否則的話每次縮進***用四個空格。

我***次看到 Python 代碼時,覺得用縮進來定義范圍還挺好的,但這么做有一個巨大的缺陷。你可以進行深度嵌套,但這么做使得每一行都會很長,導致不得不在文本編輯器中換行。較長的函數和條件語句可能會使開始和結束范圍很難匹配。而且當你不小心把三個空格當成四個空格,還容易出現計算錯誤,進而花幾個小時來調試和追蹤。

對于其它語言,我已經養成了調試代碼不帶任何縮進的習慣。這樣,我可以快速瀏覽代碼,然后輕松地識別和刪除調試代碼。但 Python 呢?任何沒有適當縮進的代碼都會產生縮進錯誤。

4. includes

大部分編程語言都有辦法導入其它代碼塊。比如,C 語言用「#include」,PHP 語言可以用「include、include_once、require、require」。而 Python 用的是「import」。

Python 可以導入整個模塊、模塊的一部分或模塊中的特定函數。C 語言?你可以查看「/usr/include/」。Python 的話,***用「python -v」列出所有路徑,然后從列表中搜索每個目錄和子目錄中的每個文件。我有些朋友很喜歡 Python,但我看到他們想導入東西時,總得瀏覽標準模塊。

導入功能還允許用戶重命名導入的代碼。它們基本上定義了一個自定義的命名空間。乍一看,你會覺得挺不錯的,但這最終會影響可讀性和長期支持。重命名對于較小的腳本來說還是不錯的,但對于長期項目來說真的不適用。那些使用 1-2 個字母作為命名空間(比如「import numpy as n」),而且還不按約定俗成的方式來命名的,簡直應該拉出去槍斃!

這還不是最糟糕的。大部分編程語言 include 代碼的時候就只是導入代碼而已。如果有一個帶有構造函數的全局對象,有些語言,如面向對象的 C++可能會執行代碼。類似地,有些 PHP 代碼可能會定義全局變量,所以導入可以運行代碼——但這種做法通常被認為很糟糕。相比之下,很多 Python 模塊包含在導入期間運行的初始化函數。你不知道在運行的是什么,它要干什么,你甚至可能不會注意到。除非存在命名空間沖突,如果這樣就好玩了,你得花很多時間來尋找原因。

5. 命名法

在其它語言中,數組(array)直接稱之為'arrays',但是在 Python 中,它們被稱為 'lists'。關聯數組在某些地方被稱為 'hash' (Perl),但是 Python 將其稱為「字典」(dictionary)。Python 似乎完全按照自己的節奏來,不使用計算機科學和信息科學領域的常見術語。

此外,Python 庫的命名也有問題。PyPy、PyPi、NumPy、SciPy、SymPy、PyGtk、Pyglet、PyGame……(前兩個庫的發音一樣,但是它們的功能完全不同)。我理解「py」表示 Python,但是它們就不能統一出現在前面或后面嗎?

一些常見庫放棄了類似雙關語的「Py」命名約定,包括 matplotlib、nose、Pillow和 SQLAlchemy。雖然有一些命名可能暗示其目的(如 SQLAlchemy 包含 SQL,所以它可能是一個 SQL 接口),但是其它的可能只是隨機的單詞。如果你不知道「BeautifulSoup」這個庫是干什么的,那么你能從命名看出來它是一個 HTML/XML 解析器嗎?不過,BeautifulSoup 有很完善的文檔且易于使用,如果每一個 Python 模塊都這樣,我也就不抱怨了,但是大多數 Python 庫的文檔非常爛。

總的來說,我認為 Python 是一個具有不一致命名約定的函數庫集合。我經常抱怨開源項目的命名非常可怕。除非你知道這些項目在干什么,否則你從命名本身中什么都看不出來。除非你知道在尋找什么樣的庫,不然只能通過別人偶然提及的名字或偶然的機會發現一些庫。大多數 Python 庫加重了這種現象,也加重了 Python 的負面體驗。

6. 奇怪的操作

每種語言都有自己比較奇特的操作。C 語言中使用 & 和 * 獲取地址空間和值的命名法非常奇怪。C 語言中還有用 ++ 和—實現 increment/decrement 的捷徑。Bash 語言中,在引用特定字符(如用于正則表達式的圓括號和句號)時需要一直考慮「什么時候使用轉義符 (\)」。JavaScript 兼容性有問題(并非每個瀏覽器都支持所有有用的功能)。但 Python 的奇怪操作比我見過的其他語言都多。如:

  • 在 C 語言中,雙引號里的是字符串,單引號里的是字符。
  • 在 PHP 和 Bash 中,兩種引號都能包含字符串。但是,雙引號里的字符串可以嵌入變量。相比之下,單引號的字符串是文字;任何嵌入的類似變量的名稱都不可擴展。
  • 在 JavaScript 中,單引號和雙引號沒什么區別。
  • 在 Python 中,單引號和雙引號也沒有什么區別。但是,如果你想讓字符串跨行,就得用三重引號,如"""string""" 或 '''string'''。如果你想用二進制,那你需要優先選擇帶有 b(b'binary')或 r(r'raw')的字符串。有時你要用 str(string) 把字符串轉換為字符串,或使用 string.encode('utf-8') 將其轉換為 utf8 格式。

如果你一開始認為 PHP 和 JavaScript 中的=、==、===有點奇怪,那等你用 Python 中的引號時可能不會這么想了。

7. 通過對象 Reference 傳遞

大多數編程語言的函數參數傳遞是傳值。如果函數改變了值,結果不會傳遞回調用代碼。但正如我解釋過的,Python 偏偏要有所不同。Python 默認使用 pass-by-object-reference 來傳遞函數參數。這意味著改變源變量可能最終會改變值。

這是面向程序、函數和對象的編程語言之間的***區別。如果每個變量都由對象引用來傳遞,并且變量的任何變化都會改變所有的引用,那你可能使用的都是全局對象。通過不同的命名調用相同的對象不會改變對象,所以實際上它就是全局的。此外,正如 C 的程序員早就學到的,全局變量太惡心了,別用。

在 Python 中,你必須通過值來傳遞變量,例如「a=b」只是給相同的對象空間分配了另一個命名,但并沒有復制 b 的值給 a。如果你真的想要復制 b 的值,你需要使用一個 copy 函數,通常是「a=b.copy()"的形式。然而,注意我說的是「通常」。不是所有數據類型都有一個「copy」原型,或者 copy 函數可能是不完整的。在這種情況下,你可以使用單獨的「copy」庫:"a=copy.deepcopy(b)"。

8. 本地命名

用所用的庫或函數的名字來命名程序是常見的編程技巧。例如,如果我用一個叫做「libscreencapture.so」的 C 庫來測試一個截屏程序,我會將該程序命名為「screencapture.c」并編譯為「screencapture.exe」。

gcc -o screencapture.exe screencapture.c -lscreencapture

在 C、Java、JavaScript、Perl、PHP 等語言中,這通常很有效,因為這些語言可以輕易地辨別本地程序和資源庫,它們有不同的路徑。但 Python 呢?還是算了吧,千萬別這樣做。為什么?Python 會假定你首先要導入本地代碼。如果我有一個名為「screencapture.py」的程序使用了「import screencapture」,那么它將導入自己而不是系統庫。至少,你應該調用本地程序「myscreencapture.py」吧。

并非一無是處

Python 是一門非常流行的編程語言,有很多粉絲。甚至我的很多朋友都很喜歡 Python。多年來,我和他們討論過這些問題,每次他們都點頭表示同意。他們并不反對 Python 存在這些問題,只是認為這不足以澆滅他們對這種語言的熱情。

我的朋友經常提到那些非常酷的 Python 庫。我同意一些庫非常有用。例如,BeautifulSoup 是我用過***的 HTML 解析器之一,NumPy 使多維數組和復雜的數學更容易實現,而 TensorFlow 對于機器學習非常有用。但是,我不會因為喜歡 TensorFlow 或 SciPy 而用 Python 創建單片程序。我不打算為了這些「蠅頭小利」而放棄可讀性和可維護性,這不值得。

通常當我寫一篇關于某個主題的批評時,我也會嘗試寫一些積極的東西。但我沒辦法列出關于 Python 的好的方面,因為我真的認為 Python 很糟糕。

原文地址:

https://www.hackerfactor.com/blog/index.php?/archives/825-8-Reasons-Python-Sucks.html

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2011-06-01 10:09:49

Ubuntu

2011-06-17 14:24:28

Java

2013-05-10 10:49:53

2018-03-20 13:56:12

數據庫MySQL枚舉類型

2010-04-06 15:14:08

2012-09-03 10:06:32

云計算IT云服務

2021-03-01 18:48:21

Go管理工具

2011-07-08 09:43:51

Chromebook

2010-09-08 11:34:36

2012-12-10 13:26:01

2023-05-08 10:54:39

IT管理CIO

2024-06-19 19:28:51

2018-02-05 23:14:35

光纖網絡光纖施工

2018-05-05 07:46:39

數據科學面試大數據

2018-05-04 15:09:25

數據科學面試數據科學家

2012-04-29 10:40:23

APP

2014-01-13 09:35:13

創業企業

2011-02-21 09:04:25

2025-09-09 07:10:00

CIOIT管理IT產品管理

2010-07-20 09:56:53

VDI部署
點贊
收藏

51CTO技術棧公眾號

中文字幕一区二区三区在线乱码 | 久久精品一卡二卡| 男人天堂手机在线| 国产乱码精品一区二区三| 色综合久久久久久中文网| 亚洲少妇中文字幕| 亚洲第一会所| 亚洲欧洲制服丝袜| 久久国产精品一区二区三区四区 | 欧美区高清在线| 91国在线视频| 国产日韩一区| 久久综合久久八八| 精品成人av一区二区三区| 国产高清日韩| 色综合久久久久久久久| 伊人久久在线观看| 99riav在线| av在线播放不卡| 亚洲free性xxxx护士白浆| 日日骚av一区二区| 欧美人成网站| 日韩中文字幕免费| 国产原创剧情av| 色综合久久久| 在线视频国内自拍亚洲视频| 夜夜添无码一区二区三区| 最新av网站在线观看| 99久久国产综合精品女不卡| 亚洲精品免费在线视频| 波多野结衣绝顶大高潮| 在线视频观看日韩| 欧美巨乳美女视频| 黄色片网站在线播放| 久久91精品| 亚洲激情在线观看| www.欧美com| www.久久爱.com| 欧美日韩一区高清| 一本久道中文无码字幕av| 国产直播在线| 午夜精品久久久| 九九热只有这里有精品| 乱人伦中文视频在线| 欧美激情中文不卡| 日本福利一区二区三区| 神马久久久久| 久久亚洲一区二区三区四区| 国产精品我不卡| 日韩在线观看视频网站| 成人午夜精品在线| 成人精品水蜜桃| 亚洲免费黄色片| 国产大陆精品国产| 高清视频在线观看一区| 肥臀熟女一区二区三区| 成人手机在线视频| 精品国产_亚洲人成在线| 欧美特级特黄aaaaaa在线看| 成人av午夜电影| 国产精品一区二区在线观看| 刘玥91精选国产在线观看| 国产成人a级片| 国产久一道中文一区| 黄色成人一级片| 97精品久久久午夜一区二区三区 | 在线观看国产三级| 日韩av网站在线免费观看| 国产又黄又大又粗的视频| 韩国av一区二区三区在线观看| 91精品视频一区| 精品久久久久中文慕人妻| 国产成人福利片| 久久久久综合一区二区三区| 免费在线毛片| 中文字幕在线不卡一区| 免费观看亚洲视频| 桃色av一区二区| 欧美视频精品在线观看| 爱情岛论坛亚洲自拍| 国产精品毛片视频| 亚洲毛片一区二区| 天堂网av2018| 亚洲天堂黄色| 国产aaa精品| 国产视频在线免费观看| 国产91丝袜在线18| 日韩不卡av| 在线观看小视频| 狠狠干狠狠久久| 伊人色在线观看| 国产精品videossex| 亚洲视频在线播放| 老湿机69福利| 久久青草久久| 91福利入口| 精品资源在线看| 亚洲欧美激情在线| 成人观看免费完整观看| 综合欧美精品| 亚洲美女自拍视频| 色在线观看视频| 久久精品女人天堂| 99国产视频在线| 国产粉嫩一区二区三区在线观看| 亚洲免费资源在线播放| 黄色一级片播放| 日韩精品一区二区三区中文| 国产视频欧美视频| 欧产日产国产v| 奇米亚洲午夜久久精品| 国产日韩二区| 成人看av片| 欧美体内she精视频| 五月天丁香社区| 四虎国产精品免费观看| 热99精品只有里视频精品| 国产高清在线免费| 国产精品色婷婷久久58| 日韩欧美视频网站| 1313精品午夜理伦电影| 日韩最新中文字幕电影免费看| 五月天婷婷久久| 粉嫩aⅴ一区二区三区四区五区| 日韩精品成人一区二区在线观看| 多野结衣av一区| 日韩午夜在线影院| 无码黑人精品一区二区| 香蕉久久a毛片| 国产精品视频免费一区| 99在线播放| 在线成人免费观看| 免费成人深夜蜜桃视频| 久久免费国产| 日本午夜精品电影| 国产调教在线| 亚洲精品wwwww| 日韩人妻无码一区二区三区99| 国产精品原创巨作av| 国产系列第一页| 亚洲综合视频| 日韩在线观看免费| 亚洲黄网在线观看| 久久一日本道色综合| 夫妻免费无码v看片| 奇米777国产一区国产二区| 欧美丰满少妇xxxxx做受| av免费观看网址| 亚洲男人电影天堂| 青娱乐国产精品视频| 68国产成人综合久久精品| 国产在线视频2019最新视频| av资源在线观看免费高清| 色先锋aa成人| 嘿嘿视频在线观看| 蜜桃av一区二区在线观看| 亚洲精品国产精品久久| 国产精品第一| 久久久91精品国产| 国产成人免费看一级大黄| 亚洲黄色小视频| 99免费观看视频| 日韩午夜黄色| 日本不卡一区| 亚洲成人1区| 欧美疯狂做受xxxx高潮| 少妇性bbb搡bbb爽爽爽欧美| 色综合一个色综合| 少妇愉情理伦三级| 国产精品一区在线观看乱码| 成人在线国产视频| 先锋影音国产精品| 国产精品久久一区| av免费在线观看网站| 欧美精品一区二区三区蜜桃| 欧美日韩综合在线观看| 国产欧美日韩激情| 九色91porny| 99日韩精品| 亚洲v国产v| 日韩高清一区| 人九九综合九九宗合| 一级毛片视频在线观看| 日韩精品中文字幕在线不卡尤物| 在线看成人av| 国产日韩av一区| www.色.com| 久久久久久婷| 日本一二三区视频在线| 亚洲69av| 亚洲qvod图片区电影| 成人av免费电影网站| www日韩欧美| 亚洲色图另类小说| 51久久夜色精品国产麻豆| 久久狠狠高潮亚洲精品| 中文字幕精品一区二区三区精品| 三大队在线观看| 人禽交欧美网站| 欧美,日韩,国产在线| 日韩在线观看| 欧美 日韩 国产在线| 国产精品一区二区精品| 日本一区二区在线播放| 天堂8中文在线| 正在播放国产一区| 无码国产精品高潮久久99| 欧美精品久久久久久久多人混战| 日韩视频免费观看高清| 综合欧美一区二区三区| 免费成人深夜夜行p站| 国产伦精品一区二区三区免费 | 日本高清视频免费在线观看| 亚欧日韩另类中文欧美| 不卡一区二区三区视频| 国产精品诱惑| 日韩av黄色在线观看| 香蕉久久aⅴ一区二区三区| 国产一区二区三区欧美| 五月天婷婷视频| 精品久久久久久久久久久久包黑料 | 天堂电影一区| 在线a欧美视频| 亚欧在线观看视频| 精品日韩一区二区| 国产免费一区二区三区最新不卡 | 粗暴91大变态调教| 99在线精品免费视频九九视| 成人短视频在线观看免费| 98精品视频| 五月天久久综合网| 视频一区中文| 欧美三级网色| 妖精一区二区三区精品视频| 粉嫩av一区二区三区免费观看 | 91精品久久久久久蜜桃| 亚洲人成777| 国产欧美日韩专区发布| 日本一区免费网站| 国产精品扒开腿做| 亚洲承认视频| 日韩免费观看网站| 欧美三级网址| 国产成人高清激情视频在线观看 | 成人天堂噜噜噜| 青青国产精品| 91久久夜色精品国产网站| 亚洲精品无播放器在线播放| 国产一区二区视频在线观看| 国外成人福利视频| 成人黄色av网站| 国产精品白丝久久av网站| 91色p视频在线| 日韩精品久久久久久久软件91| 99久久久精品免费观看国产 | 日本午夜大片a在线观看| 国内精品久久久久久中文字幕| av福利在线导航| 97av视频在线| 性欧美1819sex性高清| 国产日韩av在线播放| 4438五月综合| 国产高清自拍一区| 欧美精品中文| 性欧美大战久久久久久久免费观看| 成人在线电影在线观看视频| 亚洲三级一区| 午夜欧美理论片| 精品久久久久久久久久中文字幕| 先锋亚洲精品| 99中文字幕在线| av成人免费在线观看| 美女爆乳18禁www久久久久久| 欧美极品xxx| 久草综合在线视频| 五月天欧美精品| 最近日韩免费视频| 日韩一级黄色片| 免费国产在线视频| 北条麻妃99精品青青久久| 日本大胆在线观看| 国产成人综合av| 久久伊人久久| 美日韩精品免费| 婷婷综合亚洲| 逼特逼视频在线| 久久99精品视频| 波多野结衣先锋影音| 国产精品成人免费在线| 国产成人无码精品亚洲| 欧美色倩网站大全免费| 亚洲精品久久久蜜桃动漫| 亚洲欧洲日产国码av系列天堂| 浪潮av一区| 热久久这里只有精品| 日韩激情综合| 亚洲欧美日产图| 在线播放精品| 日本高清久久久| 久久网站热最新地址| 69av视频在线| 粉嫩老牛aⅴ一区二区三区 | 国内精品久久久久影院色| 亚洲欧美视频在线播放| 亚洲日本电影在线| 国产成人无码专区| 亚洲第一男人天堂| 菠萝菠萝蜜在线观看| 国产成人aa精品一区在线播放| jizz性欧美2| 美国av在线播放| 日本视频免费一区| 亚洲国产精品无码久久久久高潮| 日韩一区在线播放| 国产情侣小视频| 日韩精品极品视频| 毛片在线导航| 1卡2卡3卡精品视频| 日韩久久精品| 欧美黄色一级片视频| 97se亚洲国产综合在线| 久久精品视频国产| 日韩欧美色综合网站| 免费黄色网页在线观看| 国产精品美女网站| 九一精品国产| 免费午夜视频在线观看| 91在线国产福利| 国产一级在线播放| 欧美tk—视频vk| 丝袜国产在线| 91九色对白| 欧美黄色一区| 欧美性受xxxx黒人xyx性爽| 国产精品成人免费精品自在线观看| а中文在线天堂| 一区二区欧美日韩视频| 日韩影片中文字幕| 欧美自拍资源在线| 久久久久久穴| 亚洲精品国产一区黑色丝袜| 欧美性xxxxx| 你懂的视频在线免费| 日本高清不卡的在线| 九九亚洲视频| 美女喷白浆视频| 国产精品理伦片| 国产精品乱码一区二区| 久久精品一区中文字幕| 国产一区精品二区| 永久免费网站视频在线观看| 国产一区二区美女诱惑| 欧美成人精品激情在线视频| 日韩欧美中文一区| 国产美女福利在线观看| 国产精品国模大尺度私拍| 亚洲精品麻豆| 97人妻精品一区二区三区免| 一道本成人在线| p色视频免费在线观看| 国产日韩欧美电影在线观看| 亚洲精品a级片| 日本50路肥熟bbw| 欧美日韩国产综合视频在线观看中文 | 黄色av成人| 国模私拍在线观看| 色综合网站在线| 免费a级毛片在线播放| 999精品视频一区二区三区| 伊人久久亚洲影院| 国产美女精品久久| 欧美美女bb生活片| а√资源新版在线天堂| 国产精品久久亚洲7777| 蜜桃伊人久久| 亚洲精品一区二区三区在线播放| 欧美大胆一级视频| 波多野结衣亚洲| 欧美精品久久96人妻无码| 成人av网址在线| 亚洲综合一区中| 午夜欧美不卡精品aaaaa| 欧美日韩高清| 熟女人妻一区二区三区免费看| 精品国产精品自拍| 亚洲麻豆精品| 国内外成人免费视频| 免费成人在线观看视频| 久久综合综合久久| 正在播放欧美一区| 国产精东传媒成人av电影| 日韩爱爱小视频| 亚洲va国产va欧美va观看| 91亚洲精选| 精品蜜桃一区二区三区| 极品尤物av久久免费看| 国内自拍视频在线播放| 欧美另类xxx| 日本女优一区| 波多野结衣福利|