日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Python > 正文

Python開發(fā)編碼規(guī)范

2020-01-04 19:29:27
字體:
供稿:網(wǎng)友

這篇文檔所給出的編碼約定適用于在主要的Python發(fā)布版本中組成標(biāo)準(zhǔn)庫的Python代碼,請查閱相關(guān)的關(guān)于在Python的C實現(xiàn)中C代碼風(fēng)格指南的描述。

這篇文檔改編自Guido最初的《Python風(fēng)格指南》一文,并從《Barry'sstyleguide》中添加了部分內(nèi)容。在有沖突的地方,Guide的風(fēng)格規(guī)則應(yīng)該是符合本PEP的意圖(譯注:指當(dāng)有沖突時,應(yīng)以Guido風(fēng)格為準(zhǔn))。這篇PEP仍然尚未完成(實際上,它可能永遠(yuǎn)都不會完成)。

在這篇風(fēng)格指導(dǎo)中的一致性是重要的。在一個項目內(nèi)的一致性更重要。在一個模塊或函數(shù)內(nèi)的一致性最重要。但最重要的是:知道何時會不一致——有時只是沒有實施風(fēng)格指導(dǎo)。當(dāng)出現(xiàn)疑惑時,運用你的最佳判斷,看看別的例子,然后決定怎樣看起來更好。并且要不恥下問!

打破一條既定規(guī)則的兩個好理由:

(1)當(dāng)應(yīng)用這個規(guī)則是將導(dǎo)致代碼可讀性下降,即便對某人來說,他已經(jīng)習(xí)慣于按這條規(guī)則來閱讀代碼了。

(2)為了和周圍的代碼保持一致而打破規(guī)則(也許是歷史原因),雖然這也是個清除其它混亂的好機會(真正的XP風(fēng)格)。

代碼的布局

縮進(jìn)

使用Emacs的Python-mode的默認(rèn)值:4個空格一個縮進(jìn)層次。對于確實古老的代碼,你不希望產(chǎn)生混亂,可以繼續(xù)使用8空格的制表符(8-spacetabs)。EmacsPython-mode自動發(fā)現(xiàn)文件中主要的縮進(jìn)層次,依此設(shè)定縮進(jìn)參數(shù)。

制表符還是空格

永遠(yuǎn)不要混用制表符和空格。最流行的Python縮進(jìn)方式是僅使用空格,其次是僅使用制表符,混合著制表符和空格縮進(jìn)的代碼將被轉(zhuǎn)換成僅使用空格。(在Emacs中,選中整個緩沖區(qū),按ESC-x去除制表符。)調(diào)用Python命令行解釋器時使用-t選項,可對代碼中不合法得混合制表符和空格發(fā)出警告,使用-tt時警告將變成錯誤。這些選項是被高度推薦的。

對于新的項目,強烈推薦僅使用空格而不是制表符。許多編輯器擁有使之易于實現(xiàn)的功能(在Emacs中,確認(rèn)indent-tabs-mode是nil)。

行的最大長度

周圍仍然有許多設(shè)備被限制在每行80字符:而且,窗口限制在80個字符。使將多個窗口并排放置成為可能。在這些設(shè)備上使用默認(rèn)的折疊方式看起來有點丑陋。因此,請將所有行限制在最大79字符(Emacs準(zhǔn)確得將行限制為長80字符),對順序排放的大塊文本(文檔字符串或注釋),推薦將長度限制在72字符。

折疊長行的首選方法是使用Pyhon支持的圓括號,方括號和花括號內(nèi)的行延續(xù)。如果需要,你可以在表達(dá)式周圍增加一對額外的圓括號,但是有時使用反斜杠看起來更好,確認(rèn)恰當(dāng)?shù)每s進(jìn)了延續(xù)的行。

Emacs的Python-mode正確得完成了這些。一些例子:

#!Python

classRectangle(Blob):

def__init__(self,width,height,color='black',emphasis=None,highlight=0):

ifwidth==0andheight==0and/

color=='red'andemphasis=='strong'or/

highlight>100:

raiseValueError,"sorry,youlose"

ifwidth==0andheight==0and(color=='red'or

emphasisisNone):

raiseValueError,"Idon'tthinkso"

Blob.__init__(self,width,height,color,emphasis,highlight)

空行

用兩行空行分割頂層函數(shù)和類的定義,類內(nèi)方法的定義用單個空行分割,額外的空行可被用于(保守的)分割相關(guān)函數(shù)組成的群,在一組相關(guān)的單句中間可以省略空行。(例如:一組啞元素)。

當(dāng)空行用于分割方法的定義時,在‘class'行和第一個方法定義之間也要有一個空行。在函數(shù)中使用空行時,請謹(jǐn)慎的用于表示一個邏輯段落。Python接受contol-L(即^L)換頁符作為空格:Emacs(和一些打印工具),視這個字符為頁面分割符,因此在你的文件中,可以用他們來為相關(guān)片段分頁。

編碼

Python核心發(fā)布中的代碼必須始終使用ASCII或Latin-1編碼(又名ISO-8859-1),使用ASCII的文件不必有編碼cookie,Latin-1僅當(dāng)注釋或文檔字符串涉及作者名字需要Latin-1時才被使用:

另外使用/x轉(zhuǎn)義字符是在字符串中包含非ASCII(non-ASCII)數(shù)據(jù)的首選方法。

作為PEP263實現(xiàn)代碼的測試套件的部分文件是個例外。

導(dǎo)入

通常應(yīng)該在單獨的行中導(dǎo)入(Imports),例如:

No:importsys,os

Yes:importsys

importos

但是這樣也是可以的:

fromtypesimportStringType,ListType

Imports通常被放置在文件的頂部,僅在模塊注釋和文檔字符串之后,在模塊的全局變量和常量之前。Imports應(yīng)該有順序地成組安放:

1、標(biāo)準(zhǔn)庫的導(dǎo)入(Imports)

2、相關(guān)的主包(majorpackage)的導(dǎo)入(即,所有的email包在隨后導(dǎo)入)

3、特定應(yīng)用的導(dǎo)入(imports)

你應(yīng)該在每組導(dǎo)入之間放置一個空行,對于內(nèi)部包的導(dǎo)入是不推薦使用相對導(dǎo)入的,對所有導(dǎo)入都要使用包的絕對路徑。

從一個包含類的模塊中導(dǎo)入類時,通常可以寫成這樣:

fromMyClassimportMyClass

fromfoo.bar.YourClassimportYourClass

如果這樣寫導(dǎo)致了本地名字沖突,那么就這樣寫

importMyClass

importfoo.bar.YourClass

即使用"MyClass.MyClass"和"foo.bar.YourClass.YourClass"

表達(dá)式和語句中的空格

Guido不喜歡在以下地方出現(xiàn)空格:

緊挨著圓括號,方括號和花括號的,如:"spam(ham[1],{eggs:2})"。要始終將它寫成"spam(ham[1],{eggs:2})"。

緊貼在逗號,分號或冒號前的,如:

"ifx==4:printx,y:x,y=y,x"。要始終將它寫成

"ifx==4:printx,y:x,y=y,x"。

緊貼著函數(shù)調(diào)用的參數(shù)列表前開式括號(openparenthesis)的,如"spam(1)"。要始終將它寫成"spam(1)"。

緊貼在索引或切片,開始的開式括號前的,如:

"dict['key']=list[index]"。要始終將它寫成"dict['key']=list[index]"。

在賦值(或其它)運算符周圍的用于和其它并排的一個以上的空格,如:

#!Python

x=1

y=2

long_variable=3

要始終將它寫成

#!Python

x=1

y=2

long_variable=3

(不要對以上任意一條和他爭論——Guido養(yǎng)成這樣的風(fēng)格超過20年了。)

其它建議

始終在這些二元運算符兩邊放置一個空格:賦值(=),比較(==,<,>,!=,<>,<=,>=,in,notin,is,isnot),布爾運算(and,or,not)。

按你的看法在算術(shù)運算符周圍插入空格。始終保持二元運算符兩邊空格的一致。

一些例子:

#!Python

i=i+1

submitted=submitted+1

x=x*2-1

hypot2=x*x+y*y

c=(a+b)*(a-b)

c=(a+b)*(a-b)

不要在用于指定關(guān)鍵字參數(shù)或默認(rèn)參數(shù)值的'='號周圍使用空格,例如:

#!Python

defcomplex(real,imag=0。0):

returnmagic(r=real,i=imag)

不要將多條語句寫在同一行上:

No:iffoo=='blah':do_blah_thing()

Yes:iffoo=='blah':

do_blah_thing()

No:do_one():do_two():do_three()

Yes:do_one()

do_two()

do_three()

注釋

同代碼不一致的注釋比沒注釋更差。當(dāng)代碼修改時,始終優(yōu)先更新注釋!注釋應(yīng)該是完整的句子,如果注釋是一個短語或句子,首字母應(yīng)該大寫,除非他是一個以小寫字母開頭的標(biāo)識符(永遠(yuǎn)不要修改標(biāo)識符的大小寫)。

如果注釋很短,最好省略末尾的句號。注釋塊通常由一個或多個由完整句子構(gòu)成的段落組成,每個句子應(yīng)該以句號結(jié)尾。你應(yīng)該在句末,句號后使用兩個空格,以便使Emacs的斷行和填充工作協(xié)調(diào)一致。

用英語書寫時,斷詞和空格是可用的。非英語國家的Python程序員:請用英語書寫你的注釋,除非你120%的確信這些代碼不會被不懂你的語言的人閱讀。

注釋塊

注釋塊通常應(yīng)用于跟隨著一些(或者全部)代碼并和這些代碼有著相同的縮進(jìn)層次。注釋塊中每行以‘#'和一個空格開始(除非他是注釋內(nèi)的縮進(jìn)文本)。注釋塊內(nèi)的段落以僅含單個‘#'的行分割。注釋塊上下方最好有一空行包圍(或上方兩行下方一行,對一個新函數(shù)定義段的注釋)。

行內(nèi)注釋

一個行內(nèi)注釋是和語句在同一行的注釋,行內(nèi)注釋應(yīng)該謹(jǐn)慎適用,行內(nèi)注釋應(yīng)該至少用兩個空格和語句分開,它們應(yīng)該以'#'和單個空格開始。

x=x+1#Incrementx

如果語意是很明了的,那么行內(nèi)注釋是不必要的,事實上是應(yīng)該被移除的。不要這樣寫:

x=x+1#Incrementx

x=x+1#Compensateforborder

但是有時,這樣是有益的:

x=x+1#Compensateforborder

文檔字符串

應(yīng)該一直遵守編寫好的文檔字符串的約定PEP257[3]。為所有公共模塊,函數(shù),類和方法編寫文檔字符串。文檔字符串對非公開的方法不是必要的,但你應(yīng)該有一個描述這個方法做什么的注釋。這個注釋應(yīng)該在"def"這行后。

PEP257描述了好的文檔字符串的約定。一定注意,多行文檔字符串結(jié)尾的"""應(yīng)該單獨成行,例如:

"""Returnafoobang

Optionalplotzsaystofrobnicatethebizbazfirst。

"""

對單行的文檔字符串,結(jié)尾的"""在同一行也可以。

版本注記

如果你要將RCS或CVS的雜項(crud)包含在你的源文件中,按如下做。

#!Python

__version__="$Revision:1。4$"

#$Source:E:/cvsroot/Python_doc/pep8。txt,v$

這個行應(yīng)該包含在模塊的文檔字符串之后,所有代碼之前,上下用一個空行分割。

命名約定

Python庫的命名約定有點混亂,所以我們將永遠(yuǎn)不能使之變得完全一致,不過還是有公認(rèn)的命名規(guī)范的。新的模塊和包(包括第三方的框架)必須符合這些標(biāo)準(zhǔn),但對已有的庫存在不同風(fēng)格的,保持內(nèi)部的一致性是首選的。

描述:命名風(fēng)格

有許多不同的命名風(fēng)格。以下的有助于辨認(rèn)正在使用的命名風(fēng)格,獨立于它們的作用。以下的命名風(fēng)格是眾所周知的:

b(單個小寫字母)

B(單個大寫字母)

Lowercase(小寫)

lower_case_with_underscores(有下劃線的小寫)

UPPERCASE(大寫)

UPPER_CASE_WITH_UNDERSCORES(有下劃線的大寫)

CapitalizedWords(或CapWords,CamelCase這樣命名是因為可從字母的大小寫分出單詞。這有時也被當(dāng)作StudlyCaps。

mixedCase(與CapitalizedWords的不同在于首字母小寫!)

Capitalized_Words_With_Underscores(有下劃線的首字母大寫)(丑陋!)

還有用短的特別前綴將相關(guān)的名字聚合在一起的風(fēng)格。這在Python中不常用,但是出于完整性要提一下,例如,os.stat()函數(shù)返回一個元組,他的元素傳統(tǒng)上說名如st_mode,st_size,st_mtime等等。

X11庫的所有公開函數(shù)以X開頭。(在Python中,這個風(fēng)格通常認(rèn)為是不必要的,因為屬性和方法名以對象作前綴,而函數(shù)名以模塊名作前綴。)

另外,以下用下劃線作前導(dǎo)或結(jié)尾的特殊形式是被公認(rèn)的(這些通常可以和任何習(xí)慣組合):

_single_leading_underscore(單個下劃線作前導(dǎo)):弱的“內(nèi)部使用(internaluse)”標(biāo)志。(例如,“fromMimport*”不會導(dǎo)入以下劃線開頭的對象)。

single_trailing_underscore_(單個下劃線結(jié)尾):用于避免與Python關(guān)鍵詞的沖突,例如:“Tkinter.Toplevel(master,class_='ClassName')”。

_double_leading_underscore(雙下劃線):從Python1.4起為類私有名。

_double_leading_and_trailing_underscore_:“magic”對象或?qū)傩裕嬖谟谟脩艨刂频?user-controlled)名字空間,例如:_init_,_import_或_file_。有時它們被用戶定義用于觸發(fā)某個魔法行為(例如:運算符重載):有時被構(gòu)造器插入,以便自己使用或為了調(diào)試。因此,在未來的版本中,構(gòu)造器(松散得定義為Python解釋器和標(biāo)準(zhǔn)庫)可能打算建立自己的魔法屬性列表,用戶代碼通常應(yīng)該限制將這種約定作為己用。欲成為構(gòu)造器的一部分的用戶代碼可以在下滑線中結(jié)合使用短前綴,例如:

_bobo_magic_attr__。

說明:命名約定

應(yīng)避免的名字。永遠(yuǎn)不要用字符‘l'(小寫字母el(就是讀音,下同)),‘O'(大寫字母oh),或‘I'(大寫字母eye)作為單字符的變量名。在某些字體中這些字符不能與數(shù)字1和0分辨。試著在使用‘l'時用‘L'代替。

模塊名

模塊應(yīng)該是不含下劃線的,簡短的,小寫的名字。因為模塊名被映射到文件名,有些文件系統(tǒng)大小寫不敏感并且截短長名字,模塊名被選為相當(dāng)短是重要的,這在Unix上不是問題,但當(dāng)代碼傳到Mac或Windows上就可能是個問題了。

當(dāng)用C或C++編寫的擴展模塊有一個伴隨Python模塊提供高層(例如進(jìn)一步的面向?qū)ο?接口時,C/C++模塊有下劃線前導(dǎo)(如:_socket)。Python包應(yīng)該是不含下劃線的,簡短的,全小寫的名字。

類名

幾乎不出意料,類名使用CapWords約定。內(nèi)部使用的類外加一個前導(dǎo)下劃線。

異常名

如果模塊對所有情況定義了單個異常,它通常被叫做“error”或“Error”。似乎內(nèi)建(擴展)的模塊使用“error”(例如:os.error),而Python模塊通常用“Error”(例如:xdrlib.Error)。趨勢似乎是傾向使用CapWords異常名。

全局變量名

(讓我們祈禱這些變量僅在一個模塊的內(nèi)部有意義)

這些約定和在函數(shù)中的一樣。模塊是被設(shè)計為通過“fromMimport*”來使用的,必須用一個下劃線作全局變量(及內(nèi)部函數(shù)和類)的前綴防止其被導(dǎo)出(exporting)。

函數(shù)名

函數(shù)名應(yīng)該為小寫,可能用下劃線風(fēng)格單詞以增加可讀性。mixedCase僅被允許用于這種風(fēng)格已經(jīng)占優(yōu)勢的上下文(如:threading.py),以便保持向后兼容。

方法名和實例變量

這段大體上和函數(shù)相同:通常使用小寫單詞,必要時用下劃線分隔增加可讀性。僅為不打算作為類的公共界面的內(nèi)部方法和實例使用一個前導(dǎo)下劃線,Python不強制要求這樣:它取決于程序員是否遵守這個約定。

使用兩個前導(dǎo)下劃線以表示類私有的名字,Python將這些名字和類名連接在一起:

如果類Foo有一個屬性名為_a,它不能以Foo._a訪問。(固執(zhí)的用戶還是可以通過Foo._Foo__a得到訪問權(quán)。)

通常雙前導(dǎo)下劃線僅被用于避免含子類的類中的屬性名的名字沖突。

繼承的設(shè)計

始終要確定一個類中的方法和實例變量是否要被公開。通常,永遠(yuǎn)不要將數(shù)據(jù)變量公開,除非你實現(xiàn)的本質(zhì)上只是記錄,人們幾乎總是更喜歡代之給出一個函數(shù)作為類的界面(Python2.2的一些開發(fā)者在這點上做得非常漂亮)。

同樣,確定你的屬性是否應(yīng)為私有的。私有和非私有的區(qū)別在于模板將永遠(yuǎn)不會對原有的類(導(dǎo)出類)有效,而后者可以。你應(yīng)該在大腦中就用繼承設(shè)計好了你的類,私有屬性必須有兩個前導(dǎo)下劃線,無后置下劃線,非公有屬性必須有一個前導(dǎo)下劃線,無后置下劃線,公共屬性沒有前導(dǎo)和后置下劃線,除非它們與保留字沖突,在此情況下,單個后置下劃線比前置或混亂的拼寫要好,例如:class_優(yōu)于klass。

最后一點有些爭議:如果相比class_你更喜歡klass,那么這只是一致性問題。

設(shè)計建議

單個元素(singletons)的比較,如None應(yīng)該永遠(yuǎn)用:‘is'或‘isnot'來做。當(dāng)你本意是“ifxisnotNone”時,對寫成“ifx”要小心。例如當(dāng)你測試一個默認(rèn)為None的變量或參數(shù)是否被設(shè)置為其它值時,這個值也許在布爾上下文(Booleancontext)中是false!

基于類的異常總是好過基于字符串的異常。模塊和包應(yīng)該定義它們自己的域內(nèi)特定的基異常類,基類應(yīng)該是內(nèi)建的Exception類的子類。還始終包含一個類的文檔字符串。例如:

#!Python

classMessageError(Exception):

"""Baseclassforerrorsintheemailpackage。"""

使用字符串方法(methods)代替字符串模塊,除非必須向后兼容Python2.0以前的版本。字符串方法總是非常快,而且和unicode字符串共用同樣的API(應(yīng)用程序接口)在檢查前綴或后綴時避免對字符串進(jìn)行切片。用startswith()和endswith()代替,因為它們是明確的并且錯誤更少。例如:

No:iffoo[:3]=='bar':

Yes:iffoo。startswith('bar'):

例外是如果你的代碼必須工作在Python1.5.2(但是我們希望它不會發(fā)生!),對象類型的比較應(yīng)該始終用isinstance()代替直接比較類型,例如:

No:iftype(obj)istype(1):

Yes:ifisinstance(obj,int):

檢查一個對象是否是字符串時,緊記它也可能是unicode字符串!在Python2.3,str和unicode有公共的基類,basestring,所以你可以這樣做:

ifisinstance(obj,basestring):

在Python2.2類型模塊為此定義了StringTypes類型,例如:

#!Python

fromtypesimportStringTypes

ifisinstance(obj,StringTypes):

在Python2.0和2.1,你應(yīng)該這樣做:

#!Python

fromtypesimportStringType,UnicodeType

ifisinstance(obj,StringType)or/

isinstance(obj,UnicodeType):

對序列,(字符串,列表,元組),使用空列表是false這個事實,因此“ifnotseq”或“ifseq”比“iflen(seq)”或“ifnotlen(seq)”好。書寫字符串文字時不要依賴于有意義的后置空格。這種后置空格在視覺上是不可辨別的,并且有些編輯器(特別是近來,reindent.py)會將它們修整掉。不要用==來比較布爾型的值以確定是True或False(布爾型是Pythn2.3中新增的)

No:ifgreeting==True:

Yes:ifgreeting:

No:ifgreeting==True:

Yes:ifgreeting:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美日韩在线观看一区| 精品亚洲永久免费| 日韩中文字幕| 精品国产99| 日韩精品在线观看视频| 婷婷中文字幕在线观看| 日韩精品视频在线播放| 国产 欧美在线| 久久中文免费视频| 国产绿帽一区二区三区| 国产亚洲短视频| 最近中文字幕在线中文高清版| 你懂的亚洲视频| 国产午夜精品视频| 欧美国产一级| 国产传媒久久久| 中文字幕欧美人妻精品一区蜜臀 | 欧美不卡一区二区| 久久视频一区| 国产三级精品在线观看| 国产日韩精品在线看| 国产欧美日韩亚州综合| 伊人www22综合色| 欧美日韩中文字幕| 欧美在线中文字幕| 精品三级久久| 99这里有精品视频| 中文字幕在线播出| 亚洲综合视频一区| 国产高清精品在线| 日韩精品视频中文在线观看| 亚州黄色一级| 欧美一级手机免费观看片| 91精品久久久久| 91蜜桃在线视频| 久久久99精品久久| 日韩不卡一二三区| 日韩中文字幕| 日本精品专区| 国产免费一级| 日韩欧美一级视频| 另类专区欧美| 精品三级在线| 日韩高清在线不卡| 欧美日韩高清| 日韩你懂的电影在线观看| 天天综合天天| 欧美日韩在线视频首页| 亚洲男人在线| 91精品国产91久久久久| 国产一区在线观看视频| 91精品国产91久久久久青草| 欧美日韩午夜在线视频| 黄色片免费看| 91精品国产综合久久久久久漫画| 亚洲一区在线视频观看| 亚洲社区在线| 日韩欧美中文字幕精品| 国精品产品一区| 日韩精品第一区| 韩国av一区二区| 五月天久久比比资源色| 国产在线不卡一区| 精品国产不卡一区二区| 精品视频三区| 日韩a一区二区| 国产精品一区二三区| 久久精品蜜桃| 国产99精品| 欧美91精品| 日韩欧美一级在线播放| 欧美日韩在线观看首页| 欧美日韩精品中文字幕| 日韩精品 欧美| 97国产视频| 免费视频最近日韩| 中文字幕在线观看欧美| 日韩中文首页| 亚洲第一视频在线观看| 国产一级视频在线播放| 一区精品在线播放| 欧美三级三级三级爽爽爽| 久久riav| 日韩精品一级| 欧美日韩999| 欧美中文字幕在线观看视频| 亚洲国产91精品在线观看| 久久久精品福利| 日韩在线高清视频| 国产成人精品亚洲| 久草中文在线观看| 欧美91精品| 最近中文字幕在线中文视频| 玖玖在线免费视频| 国产欧美综合在线观看第十页| 在线观看国产一级片| 日韩欧美亚洲日产国| 在线国产99| 韩国av一区二区| 国产激情在线视频| 欧美日韩中文字幕一区| 自拍日韩亚洲一区在线| 国产一卡二卡3卡4卡四卡在线| 91精品电影| www高清在线视频日韩欧美| 免费国产成人看片在线| 视频一区视频二区中文| 日韩欧美在线视频日韩欧美在线视频 | 欧美三级视频在线| 日韩精品三级| 亚洲一卡二卡在线观看| 97视频在线| 日韩专区中文字幕| 国产在线第一页| 日韩美女中文字幕| 国产在线日韩精品| 久久婷婷亚洲| 日韩在线a电影| 日韩精品乱码av一区二区| 国产婷婷在线观看| 亚洲欧美中文字幕在线观看| 日韩久久精品网| 亚洲影视资源网| 亚洲综合日韩欧美| 免费高清视频日韩| 中文字幕亚洲二区| 欧美日韩中文字幕一区| 91精品国产入口| 欧美国产三级| 亚洲最新免费视频| 中文欧美日韩| 中文字幕日韩亚洲| 国产欧美日韩中文| 日韩一级二级三级精品视频| 精品日本视频| 久久久精品免费免费| 中文字幕在线观看视频www| 日韩精品在线免费观看视频| 亚亚洲欧洲精品| 99精品视频99| 国产成人精品999| 国产综合成人久久大片91| 国产wwww| 国产一区深夜福利| 精品日韩视频在线观看| 亚洲国产欧美久久| 欧美日韩亚洲国产综合| 亚洲精品欧美二区三区中文字幕| 中文字幕综合在线| 欧美日韩中文在线| 久久av免费| 搞黄在线观看| 中文字幕在线官网| 国产99在线|亚洲| 欧美日中文字幕| 欧美日韩三级在线观看| 欧美另类久久久品| 亚洲素人一区二区| 欧美天堂一区二区| 亚洲欧美视频一区二区三区 | 国产区在线看| 亚洲制服一区| 亚洲一区在线观看免费| 91欧美在线| 国产成人精品三级| 亚洲欧美日本国产专区一区| 久久婷婷国产| 国产最新在线| 精品一二线国产| 日韩一级精品| 在线不卡一区二区| 成人h视频在线观看| wwwwww国产| 免费国产h视频在线观看86| 天堂中文在线视频| 亚洲欧美日本另类| 日韩精品综合在线| а√天堂中文在线资源8| 日韩在线一区二区| 欧美日韩一级片在线观看| 国产裸体歌舞团一区二区| 亚洲欧美99| 国产日韩亚洲欧美| 日韩av综合在线观看| 一级免费a一片| 一区二区三区精品在线| 一区免费视频| 亚洲免费精品| 亚洲一区日韩在线| 欧美日韩综合在线观看| 日韩欧美国产免费播放| 99视频一区| 亚洲 欧美综合在线网络| 91精品综合久久| 国产欧美日韩视频在线| 日韩在线视频观看正片免费网站| 国产高清一级片| 最新日韩中文字幕| 欧美三级在线播放| 欧美 日韩 国产 高清| 久久久99精品久久| 视频一区二区精品的福利| 日韩亚洲不卡在线| 欧美日韩高清一区二区不卡| 日韩三级一区| 91精品国产综合久久精品| 亚洲免费在线观看av| 日韩精品高清不卡| 欧美日韩在线观看成人| 九七久久人人| 欧美天堂一区二区| 国产成人精品网址| av中文天堂在线| 欧美大片在线观看一区| 国产免费电影网站入口| 日韩免费视频一区二区视频在线观看| 国产一区精品| av手机天堂| 亚洲人成欧美中文字幕| 国产三级视频在线| 国产黄色小视频| 亚洲免费观看视频| 久久精品国产2020观看福利| 日韩中文字幕第一页| 亚洲成a人片在线www| 一区在线视频观看| 精品久久久精品| 精品国产1区2区3区| 激情五月综合| 天堂在线中文| 日韩影院二区| 亚洲欧洲日韩在线| 日韩.com| 日韩 欧美 综合| a天堂中文在线官网在线| 九一久久久久久| 久久久精品日韩| 91精品国产91久久久久久青草| 精品乱人伦一区二区三区| 国产 欧美 在线| 九九九精品视频| 亚洲国产综合久久| 一区二区高清在线| 麻豆精品视频入口| 一区二区中文视频| 日韩欧美在线精品| 中文国产字幕在线观看| 国产xxx在线| av一区在线| 91精品国产99| 蜜臀国产一区| 日韩视频免费直播| 日韩精品视频免费| 日本精品在线播放| 中文字幕欧美日韩精品| 精品久久在线| 久久手机免费观看| 日韩视频中文| 高清中文字幕在线| 99精品在线播放| 国产乱码在线观看| 日韩精品综合在线| 亚洲日产av中文字幕| 日韩欧美一级精品久久| 精品1区2区3区| 欧美日韩在线第一页| 亚洲羞羞网站| 91精品国产综合久久精品app| 在线观看国产一区| 亚洲久草视频| 国产精品福利视频一区二区三区| 亚州黄色一级| 亚洲图片小说综合| 自拍日韩亚洲一区在线| 日韩欧美色综合网站| 中文在线视频| 亚洲校园欧美国产另类 | 久久99久久久久| 国产色在线 com| 国产视频1区| 日韩黄色在线播放| 一区在线视频观看| 国产亚洲二区| 欧美中文字幕在线视频| 中文字幕在线视频精品| 蜜桃精品视频| 久久精品国产视频| 在线免费播放av| 中文字幕第一页在线| 久久久91精品国产| 日韩中文欧美在线| 日韩精品第一区| 日韩视频免费直播| 精品人妻一区二区免费视频| 91精品国产91综合久久蜜臀| 九七久久人人| 中文在线不卡| 中文字幕第一页在线| 亚洲人成欧美中文字幕| 国产福利在线导航| 在线看av的网址| 在线视频第一页| 欧美中文字幕在线观看视频| 一区二区不卡视频在线观看| 国产乱国产乱300精品| 亚洲综合中文字幕在线| 国产日韩精品在线| 欧美 日韩 国产 在线观看| 国产一区精品在线| 香蕉视频亚洲一级| 国产免费播放一区二区| 精品国产欧美日韩不卡在线观看| 亚洲成av人综合在线观看| 精品av中文字幕在线毛片| 欧美日韩亚洲综合在线| 国产成人精品av久久| 久久永久免费视频| 日韩欧美99| 亚洲综合日韩欧美| 中文字幕在线观看国产| 日本精品二区| 精品久久人人做人人爽| 高清国产一区| 日韩精品一页| 九九九精品视频| 亚洲理论中文字幕| www日韩欧美| 日本啊v在线| 亚洲尤物av| 精品999视频| av免费网站在线观看| 成年人黄国产| 国产日韩精品在线| 一区二区日韩免费看| 国产乱国产乱老熟300部视频| 日韩一二三四区| 视频一区三区| 在线欧美一级视频| www中文字幕| 国产欧美日韩在线看| 中文字幕欧美日韩在线| 97国产视频| 中文字幕 亚洲一区| 欧美日韩日本视频| 成年人看的羞羞网站| 国内精品99| 中文字幕精品www乱入免费视频| 亚洲国产福利| 又黄又www的网站| 精品久久九九| 亚洲福利精品视频| 中文在线中文字幕| 五月天久久比比资源色| 日韩欧美99| 日韩视频第二页| 日韩在线视频网| 国产欧美日韩久久| 国产一区久久| 91欧美日韩在线| 亚洲男人在线| 亚洲成a人片在线www| 欧美色视频一区二区三区在线观看| 欧美不卡视频| 在线一区av| 欧美日韩国产在线| 欧美在线视频一区二区| 中文字幕在线视频久| 国产在线观看精品| 中文字幕欧美日韩va免费视频| 91精品国产综合久久精品app| 亚洲制服一区| 视频一区日韩| 亚洲综合日韩| 日韩av一区二区在线| www中文字幕在线观看| 中文字幕亚洲二区| 欧美一级手机免费观看片| 欧美婷婷精品激情| 国产黄在线播放| 国产中文在线观看| a在线观看免费视频| 日韩国产欧美亚洲| 在线不卡一区二区| 久艹在线视频| 精品播放一区二区| 国产一区久久| 日韩三级一区| 日韩高清在线一区二区| 日韩欧美在线综合| 欧美日韩一二三| 欧美日韩久久不卡| 国产一区深夜福利| 欧美日韩国产免费观看视频| 亚洲 欧美 精品| 中文字幕五月天| 99在线国产| 免费网站看黄yyy222| 中文字幕亚洲欧美| 日韩在线二区| 国产日产一区二区三区 |