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

Python編程:定義函數輸入參數很簡單?這些規則掌握了沒?

開發 前端
到目前為止,我們所看到的例子中,看到的所有參數都是普通的位置參數或關鍵字參數。也已經了解了如何將它們作為位置參數和關鍵字參數傳遞。關于它們沒有太多要說的了,所以我們要來看看其他類別。在此之前,先來看看可選參數。

?本文內容主要涉及如下幾個主題方法,文章有點長,請收藏以便查閱。

函數參數即為函數的輸入,可分類為五組。

  • 位置或關鍵字參數:同時允許位置和關鍵字參數;
  • 可變位置參數:在元組中收集任意數量的位置參數;
  • 可變關鍵字參數:在字典中收集任意數量的關鍵字參數;
  • 僅限位置參數:只能作為位置參數傳遞;
  • 僅限關鍵字參數:只能作為關鍵字參數傳遞。

到目前為止,我們所看到的例子中,看到的所有參數都是普通的位置參數或關鍵字參數。也已經了解了如何將它們作為位置參數和關鍵字參數傳遞。關于它們沒有太多要說的了,所以我們要來看看其他類別。在此之前,先來看看可選參數。

1.可選參數

除了我們在這里看到的類別之外,參數還可以分為必選項和可選項。可選參數有默認值,其值在函數定義中指定。語法是格式為:name=value。示例如下:

# 定義參數有默認值的函數,調用時其為可選型參數
def func(a, b=4, c=88):
print(a, b, c)

func(1) # prints: 1 4 88
func(b=5, a=7, c=9) # prints: 7 5 9
func(42, c=9) # prints: 42 4 9
func(42, 43, 44) # prints: 42, 43, 44

這里,a是必需傳遞參數項,而b的默認值是4,c的默認值是88,兩者是可選項。重要的是要注意,除了只有關鍵字的形參外,必需型形參必須始終位于函數定義中所有可選形參的左側。試著在上面的例子中刪除c的默認值,看看會發生什么。

2.不定量位置參數

有時,可能不希望為函數指定位置參數的確切數量,而Python通過使用可變位置參數提供了實現這一點的能力。讓我們來看一個非常常見的用例,minimum()函數。

這是一個計算其輸入值最小值的函數,代碼如下:

# 不定量位置參數
def minimum(*n):
# print(type(n)) # n 是個元組
if n: #
mn = n[0]
for value in n[1:]:
if value < mn:
mn = value
print(mn)

minimum(1, 3, -7, 9) # n = (1, 3, -7, 9) - prints: -7
minimum() # n = () - prints: nothing

如上所見,當我們定義一個帶有星號*的形參時,我們是在告訴Python,當函數被調用時,這個形參將收集數量不定的位置實參。在函數中,n是一個元組。可取消代碼中的注釋print(type(n))行,然后運行程序并看看輸出。

注意,一個函數最多只能有一個不定量位置參數——有更多的位置參數是沒有意義的。Python將無法決定如何劃分它們之間的參數。您也無法為變量位置參數指定默認值。默認值總是一個空元組。

提示:

是否注意到代碼中是如何用一個簡單的if n:檢查n是否為空的?這是因為在Python中,集合對象在非空時求值為True,否則為False。元組、集合、列表、字典等等都是如此。

另一件需要注意的事情是,當調用不帶參數的函數時,可能想拋出一個錯誤,而不是靜默地什么都不做。在這種情況下,我們不關心如何使這個函數健壯,而是要理解可變量位置參數。

另外,是否注意到,定義不定量位置形參的語法與可迭代解包的語法非常相似?這并非巧合。畢竟,這兩個特征互為鏡像。它們也經常一起使用,因為不定量位置形參讓你不必擔心解包的可迭代對象的長度是否與函數定義中的形參數量相匹配。

3.不定量關鍵字參數

不定量關鍵字參數(Variable keyword parameters)非常類似于不定量位置參數。唯一的區別是語法(**而不是*)和它們以字典形式被收集的事實:

# 不定量關鍵字參數
def func(**kwargs):
print(kwargs)

func(a=1, b=42) # prints {'a': 1, 'b': 42}
func() # prints {}
func(a=1, b=46, c=99) # prints {'a': 1, 'b': 46, 'c': 99}

如上所示,在函數定義的參數名稱前添加**告訴Python使用該名稱來收集數量不定的關鍵字參數。與不定量位置參數的情況一樣,每個函數最多只能有一個可變關鍵字參數,并且不能指定默認值。

就像可變量位置參數類似于可迭代解包一樣,可變關鍵字參數類似于字典解包。字典解包也經常用于將參數傳遞給具有可變量關鍵字形參的函數。

為什么能夠傳遞可變數量的關鍵字參數如此重要,目前可能還不清楚,那么通過如何使用這一能力的示例,你將能更真實的理解其重要性。

我們定義一個連接到數據庫的函數:我們希望通過不帶參數地調用這個函數來連接到默認數據庫。還希望通過向函數傳遞適當的參數來連接到任何其他數據庫。在你繼續讀下去之前,自己試著花幾分鐘自己想出一個解決方案:

# 可變量關鍵字參數
def connect(**options):
conn_params = {
'host': options.get('host', '127.0.0.1'),
'port': options.get('port', 5432),
'user': options.get('user', ''),
'pwd': options.get('pwd', ''),
}
print(conn_params)

# 然后連接數據庫(注釋掉的代碼行)
# db.connect(**conn_params)
connect()
connect(host='127.0.0.42', port=5433)
connect(port=5431, user='admin', pwd='super')

注意,在函數中,我們可以準備一個連接參數字典(conn_params)使用默認值作為回退,其允許在函數調用時提供以覆蓋它們。有更好的方法可以用更少的代碼行來實現這一點,但我們現在不關心這一點。運行上述代碼會得到以下結果:

{'a': 1, 'b': 46, 'c': 99}
{'host': '127.0.0.1', 'port': 5432, 'user': '', 'pwd': ''}
{'host': '127.0.0.42', 'port': 5433, 'user': '', 'pwd': ''}
{'host': '127.0.0.1', 'port': 5431, 'user': 'admin', 'pwd': 'super'}

注意函數調用和輸出之間的對應關系,以及如何根據傳遞給函數的內容重寫默認值。

4.僅限位置參數

從Python 3.8開始,PEP 570 (https://www.python.org/dev/peps/pep-0570/)引入了僅限位置的參數。有一種新的函數參數語法,/,表示一組函數形參必須在位置上指定,不能作為關鍵字參數傳遞。讓我們看一個簡單的例子:

# 僅限位置參數
def func(a, b, /, c):
print(a, b, c)

func(1, 2, 3) # prints: 1 2 3
func(1, 2, c=3) # prints 1 2 3

在上面的例子中,我們定義了一個函數func(),它指定了三個參數:a、b和c。函數簽名中的/表示a和b必須按位置傳遞,也就是說,不能通過關鍵字傳遞。

示例中的最后兩行顯示,我們可以按位置傳遞所有三個參數來調用函數,或者可以按關鍵字傳遞c。這兩種情況都可以正常工作,因為c定義在函數簽名中的/之后。如果我們試圖通過通過關鍵字傳遞a或b來調用函數,像這樣:

func(1, b=2, c=3)

這將產生如下類似回溯跟蹤信息:

Traceback (most recent call last):
File "……", line 9, in <module>
func(1, b=2, c=3)
TypeError: func() got some positional-only arguments passed as keyword arguments: 'b'

前面的例子告訴我們,Python現在反饋給我們調用func()的方式,其意思是:通過關鍵字傳遞了參數b,但不允許這樣做。

僅限位置參數也可以是可選的,如下所示:

# 可選的僅限位置參數
def func(a, b=2, /):
print(a, b)

func(4, 5) # prints 4 5
func(3) # prints 3 2

通過一些從官方文檔中借來的例子來看看這個特性給該語言帶來了什么。一個優點是能夠完全模擬現有C編碼函數的行為:

def divmod(a, b, /):
"模擬內建函數 divmod()"
return (a // b, a % b)

另一個重要的用例是在形參名沒有啥有意義的幫助的情況下排除關鍵字實參:

len(obj='hello')

在上面的例子中,obj關鍵字參數降低了可讀性。此外,如果我們希望重構len函數的內部結構,并將obj重命名為the_object(或任何其他名稱),更改保證不會破壞任何客戶端代碼,因為不會有任何對len()函數的調用,會涉及到現在已經過時的obj參數名稱。

最后,使用僅限位置形參意味著/左邊的任何值都可以在不定量關鍵字實參中使用,如下例所示:

def func_name(name, /, **kwargs):
print(name)
print(kwargs)

func_name('Positional-only name', name='Name in **kwargs')
# 打印輸出為:
# Positional-only name
# {'name': 'Name in **kwargs'}

在函數簽名中保留參數名以便在**kwargs中使用的能力可以生成更簡單、更清晰的代碼。

現在來研究一下僅限位置類似版:僅限關鍵字參數。

5.僅限關鍵字參數

Python 3引入了僅限關鍵字的參數。我們只簡要地研究它們,因為它們的用例并不常見。有兩種方法可以指定它們,要么在不定量位置參數之后,要么在不定的*之后。來看兩個例子。代碼如下:

# 僅限關鍵字參數
def kwo(*a, c):
print(a, c)

kwo(1, 2, 3, c=7) # prints: (1, 2, 3) 7
kwo(c=4) # prints: () 4
# kwo(1, 2) # 此行出問題——無效于法,并有如下錯誤
# TypeError: kwo() missing 1 required keyword-only argument: 'c'

def kwo2(a, b=42, *, c):
print(a, b, c)

kwo2(3, b=7, c=99) # prints: 3 7 99
kwo2(3, c=13) # prints: 3 42 13
# kwo2(3, 23) # 此行出問題——無效于法,并有如下錯誤
# TypeError: kwo2() missing 1 required keyword-only argument: 'c'

正如預期的那樣,函數kwo()接受數量可變的位置參數(a)和一個只有關鍵字的關鍵字c。調用的結果很簡單,你可以取消對第三個調用的注釋,以查看Python返回什么錯誤。

同樣的情況也適用于函數kwo2(),它與kwo的不同之處在于,它接受一個位置參數a、一個關鍵字參數b和一個只有關鍵字的參數c。你可以取消對第三個調用的注釋,以查看產生的錯誤。

現在應已知道了如何指定不同類型的輸入參數,接下來看看如何在函數定義中組合它們。

6.組合輸入參數

可以在同一個函數中組合不同的參數類型(事實上,這樣做通常非常有用)。就像在同一個函數調用中組合不同類型的實參一樣,在順序上有一些限制:

  • 僅限位置的參數放在前面,然后跟隨一個斜杠“/”。
  • 普通參數在任何僅限位置參數之后。
  • 不定量位置參數在正常參數之后。
  • 只有關鍵字參數在不定量位置參數之后。
  • 不定量關鍵字參數總是排在最后。

對于僅限位置參數和普通參數,任何必需的參數必須在任何可選參數之前定義。這意味著,如果你有一個可選的僅限位置參數,那么所有常規參數也必須是可選的。該規則不影響僅限關鍵字的參數。

如果沒有例子,這些規則可能會有點難以理解,所以來看幾個示例:

# 定義個帶有所有參數形式的函數
def func(a, b, c=7, *args, **kwargs):
print('a, b, c:', a, b, c)
print('args:', args)
print('kwargs:', kwargs)

func(1, 2, 3, 5, 7, 9, A='a', B='b')

注意函數定義中參數的順序。執行該程序會得到以下結果:

a, b, c: 1 2 3
args: (5, 7, 9)
kwargs: {'A': 'a', 'B': 'b'}

現在再來看一個只有關鍵字參數的例子:

# 僅限觀自在參數
def allparams(a, /, b, c=42, *args, d=256, e, **kwargs):
print('a, b, c:', a, b, c)
print('d, e:', d, e)
print('args:', args)
print('kwargs:', kwargs)

allparams(1, 2, 3, 4, 5, 6, e=7, f=9, g=10)

注意,在函數聲明中有僅限位置形參和僅限關鍵字形參:a僅限位置形參,而d和e僅限關鍵字形參。他們是在*args可變量位置參數之后,如果它們緊跟在單個*的后面,也會是一樣的(在這種情況下,將沒有任何可變位置參數)。運行程序會得到以下結果:

a, b, c: 1 2 3
d, e: 256 7
args: (4, 5, 6)
kwargs: {'f': 9, 'g': 10}

另一件需要注意的事情是我們為可變量位置參數和關鍵字參數命名。你可以自由選擇不同的名稱,但請注意,args和kwargs是這些參數的常規名稱,至少在一般情況下是這樣。

7.更多的簽名示例

為了簡要回顧一下使用僅限位置和關鍵字說明符的函數簽名,下面是一些進一步的示例。省略不定量位置和關鍵字參數,為簡潔起見,我們只剩下以下語法:

def xxxFuncName(positional_only_parameters, /,
positional_or_keyword_parameters, *,
keyword_only_parameters):
# 函數體
pass

首先,我們有僅限位置的參數,然后是位置或關鍵字參數,最后是僅限關鍵字參數。

其他一些有效簽名如下:

def xxxFuncName(p1, p2, /, p_or_kw, *, kw):
def xxxFuncName(p1, p2=None, /, p_or_kw=None, *, kw):
def xxxFuncName(p1, p2=None, /, *, kw):
def xxxFuncName(p1, p2=None, /):
def xxxFuncName(p1, p2, /, p_or_kw):
def xxxFuncName(p1, p2, /):

以上均為有效簽名,下列為無效簽名:

def xxxFuncName(p1, p2=None, /, p_or_kw, *, kw):
def xxxFuncName(p1=None, p2, /, p_or_kw=None, *, kw):
def xxxFuncName(p1=None, p2, /):

你可以在官方文檔中閱讀語法規范:

https://docs.python.org/3/reference/compound_stmts.html#functiondefinitions

提示:在這一點上,要很好的理解與掌握,一個有用的練習方法是實現上述示例簽名中的任何一個,打印出這些參數的值,就像我們在前面的練習中所做的那樣,并以不同的方式傳遞參數。

8.避免陷阱!可變默認值

要注意的一件事是,在Python中,默認值是在定義時創建的;因此,根據默認值的可變性,對同一函數的后續調用可能會有不同的行為。讓我們看一個例子:

# 帶有可變默認值參數函數
def func(a=[], b={}):
print(a)
print(b)
print('#' * 12)
a.append(len(a)) # 影響a的默認值
b[len(a)] = len(a) # 影響b的默認值

func()
func()
func()

兩個參數都有可變的默認值。這意味著,如果執行中影響了這些對象,任何修改都將停留在后續的函數調用中。看看你是否能理解這些調用的輸出:

[]
{}
############
[0]
{1: 1}
############
[0, 1]
{1: 1, 2: 2}
############

是不是很搞事?雖然這種行為一開始看起來很奇怪,但它實際上是有意義的,而且非常方便——例如,當使用“記憶”技術時,就有了天生之才的傲嬌。更有趣的是,在調用之間,我們引入了一個不使用默認值的函數,比如:

# 中間調停者調用
func()
func(a=[1, 2, 3], b={'B': 1})
func()

運行代碼輸出內容如下所示:

[]
{}
############
[1, 2, 3]
{'B': 1}
############
[0]
{1: 1}
############

這個輸出告訴我們,即使使用其他值調用函數,默認值也會被保留。我想到的一個問題是,如何每次都獲得一個新的空值?慣例是這樣的:

# 無陷阱可變缺省默認值
def func(a=None):
if a is None:
a = []
# 干些使用a的工作 ...

注意,通過使用前面的技術,如果調用函數時沒有傳遞a,我們總是得到一個全新的空列表。

本文小結

本文詳細介紹了函數的輸入參數分類、示例和調用,都是圍繞如下主題展開:

位置或關鍵字參數:同時允許位置和關鍵字參數;

可變位置參數:在元組中收集任意數量的位置參數;

可變關鍵字參數:在字典中收集任意數量的關鍵字參數;

僅限位置參數:只能作為位置參數傳遞;

?僅限關鍵字參數:只能作為關鍵字參數傳遞。?

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-11-06 21:50:59

Python編程函數定義

2019-02-19 09:29:21

事務系統模式MySQL

2020-11-09 07:25:20

函數 JavaScript數據

2020-06-16 17:10:44

JavaScriptReact開發

2023-05-10 07:42:26

Java多線程編程

2009-07-27 13:46:27

網絡參數切換

2009-11-18 16:58:55

PHP命名規則

2010-09-07 11:14:56

DB2配置向導

2023-09-11 08:30:30

Creator工廠方法

2023-11-08 08:43:08

calc函數CSS

2020-04-13 08:33:39

高并發秒殺系統

2010-06-12 10:10:55

2010-10-09 16:51:47

2022-10-08 00:03:00

Debug技巧調試

2023-11-27 18:09:46

Redis內存數據庫

2010-09-29 14:48:16

2022-11-09 07:42:51

Python編程函數

2010-05-19 16:45:26

MySQL自動啟動

2010-06-09 13:55:24

設置MySQL同步

2022-09-16 11:41:17

Spring代碼
點贊
收藏

51CTO技術棧公眾號

玖玖玖精品中文字幕| 97在线免费观看| 四川一级毛毛片| xxx.xxx欧美| 久久色.com| 成人免费视频a| 亚洲国产综合久久| 凹凸成人精品亚洲精品密奴| 日韩精品在线一区二区| 国产麻花豆剧传媒精品mv在线| 在线免费看a| 9色porny自拍视频一区二区| 国产精品专区第二| 国产黄色片视频| 手机在线电影一区| 日韩av网站导航| 亚洲高清视频免费| 黑人巨大精品| 亚洲国产一区视频| 亚洲一区免费看| 香港三日本三级少妇66| 国产精品亚洲成人| 国产精品午夜一区二区欲梦| 日韩av在线电影| 图片区亚洲欧美小说区| 亚洲欧洲一区二区三区久久| 女性生殖扒开酷刑vk| 巨大黑人极品videos精品| 欧美性猛交xxxx乱大交3| 加勒比海盗1在线观看免费国语版| 香蕉人妻av久久久久天天| 国产精品99久久久久| 国产精品一区二区女厕厕| 国产三级av片| 亚洲手机视频| 欧美另类极品videosbestfree| 成人精品一二三区| 欧洲杯什么时候开赛| 日韩av中文在线| 久久久无码人妻精品无码| a一区二区三区亚洲| 欧美性猛片xxxx免费看久爱| 男人天堂网视频| 日本在线高清| 狠狠色狠狠色综合日日五| 免费不卡av在线| 国产啊啊啊视频在线观看| 一区二区三区在线免费视频| 亚洲日本一区二区三区在线不卡 | segui88久久综合| 最新国产成人在线观看| 亚洲一区二区三区涩| 91欧美在线视频| 国产精品无人区| 亚洲国产午夜伦理片大全在线观看网站| 三级黄视频在线观看| 91网站最新网址| 麻豆一区区三区四区产品精品蜜桃| 神马午夜在线观看| av中文字幕亚洲| 国产一区二区视频在线免费观看 | 亚洲视频 欧美视频| 亚洲综合好骚| 国产精品91免费在线| 中文字幕在线天堂| 蜜臀av性久久久久蜜臀av麻豆| 国产精品久久久久久久久久东京 | 蜜桃一区二区三区在线观看| 国产精品综合网站| 国产视频在线观看免费| 国产福利精品一区二区| 国产一区二区精品在线| 三级在线播放| 中文在线免费一区三区高中清不卡| 性高潮久久久久久久久| 国产在线激情| 亚洲成人av一区二区三区| 中国丰满人妻videoshd | 99riav在线| 亚洲色欲色欲www| a级黄色小视频| 亚洲天堂电影| 欧美三级一区二区| 亚洲综合在线一区二区| 91精品入口| 亚洲男人的天堂在线| 日韩毛片无码永久免费看| 四虎成人av| 久久久久久久999| 日韩一级在线视频| 精品一区在线看| 国产一区二区精品在线| av影片在线看| 午夜欧美在线一二页| 小泽玛利亚视频在线观看| 综合欧美亚洲| 在线视频欧美日韩| 久草视频中文在线| 日韩二区三区四区| 国产精品久久久久久久久久直播 | 国产盗摄xxxx视频xxx69| 亚洲自拍第二页| 成人h动漫精品一区二区| 神马影院一区二区| 国产第一页在线视频| 欧美日韩中字一区| a级一a一级在线观看| 日韩免费视频| **欧美日韩vr在线| 国产又大又黄又爽| 久久美女艺术照精彩视频福利播放| 最新欧美日韩亚洲| 香蕉视频亚洲一级| 精品国产制服丝袜高跟| 日本美女xxx| 99在线精品免费视频九九视| 亚洲free性xxxx护士白浆| 激情小视频在线| 午夜伊人狠狠久久| 三级黄色片免费看| 久久网站免费观看| 国产suv精品一区二区| 人人妻人人玩人人澡人人爽| 亚洲人成亚洲人成在线观看图片| 五月婷婷狠狠操| 天海翼精品一区二区三区| 欧美成人精品不卡视频在线观看| 欧美日韩在线视频播放| 99久久综合99久久综合网站| 无码人妻精品一区二区蜜桃网站| 国产精品一区免费在线 | 日韩一区二区三免费高清| 极品人妻videosss人妻| 国产欧美精品久久| 国产精品一级久久久| 国产欧美久久久久久久久| 欧美自拍偷拍一区| 亚洲av综合一区二区| 99在线精品视频在线观看| yy111111少妇影院日韩夜片 | 国模精品一区| 国产97在线视频| 你懂的在线播放| 精品人伦一区二区三区蜜桃网站 | 亚洲婷婷国产精品电影人久久| 少妇激情一区二区三区| 国产毛片一区二区三区| 日本国产高清不卡| 精品美女视频在线观看免费软件| 亚洲成在线观看| 国产精品扒开腿做爽爽爽a片唱戏| 国产精品mv在线观看| 91精品久久香蕉国产线看观看| 精品欧美色视频网站在线观看| 欧美精品日韩综合在线| 小早川怜子一区二区的演员表| 另类成人小视频在线| 性欧美videosex高清少妇| ww久久综合久中文字幕| 中文字幕亚洲一区二区三区五十路| 欧美日韩在线视频播放| 中文字幕亚洲在| 九九九久久久久久久| 欧美特黄视频| 国产精品视频在线免费观看| 超碰在线资源| 亚洲欧美日韩精品久久| 国产成人精品亚洲| 国产精品视频你懂的| 成人日韩在线视频| 欧美国产91| 国产精品对白一区二区三区| 亚洲精品mv| 中文字幕欧美精品日韩中文字幕| 国产原创中文av| 亚洲制服丝袜av| 日韩免费高清一区二区| 视频精品一区二区| 中文字幕久久一区| 日韩精品免费视频一区二区三区 | 精品一区二区三区中文字幕 | 亚洲精品一区二区网址| 这里只有精品999| 亚洲精品乱码久久久久久久久| 怡红院一区二区| 久久男女视频| 欧美日韩一区二区三区电影| 欧美男男freegayvideosroom| 国产精品久久久久久久久影视 | 亚洲欧美日韩电影| 国产 中文 字幕 日韩 在线| 麻豆精品在线观看| 亚洲精品蜜桃久久久久久| 免费欧美激情| 亚洲字幕一区二区| 久久毛片亚洲| 久久99亚洲精品| 春暖花开成人亚洲区| 日韩视频免费观看高清在线视频| 久久久久99精品成人片三人毛片| 亚洲婷婷国产精品电影人久久| 青青草成人免费视频| 狠狠v欧美v日韩v亚洲ⅴ| 欧美,日韩,国产在线| 久久精品国产99久久| 国产成人av一区二区三区| 国产v综合v| 欧美激情综合亚洲一二区| 日韩黄色影院| 亚洲美腿欧美激情另类| 精品久久久久久亚洲综合网站| 在线亚洲一区观看| 国产一级在线播放| 亚洲欧美中日韩| 国产熟妇久久777777| 成人综合在线视频| 国产3p在线播放| 久久久777| 国产av人人夜夜澡人人爽麻豆| 99九九热只有国产精品| 日本电影一区二区三区| 东京久久高清| 147欧美人体大胆444| 国内精品伊人| 国产精品嫩草视频| 另类激情视频| 91精品国产91久久久久久吃药| 特级毛片在线| 精品国产自在精品国产浪潮| 国产无套粉嫩白浆在线2022年| 亚洲精品久久久一区二区三区| 亚洲国产一二三区| 91精品国产91久久综合桃花| 国产精品视频久久久久久| 欧美综合天天夜夜久久| youjizz在线视频| 午夜视频一区二区| 日韩精品一卡二卡| 亚洲成人精品一区二区| 久久久久亚洲AV| 夜夜夜精品看看| 日韩在线观看视频一区二区| 亚洲视频免费在线观看| 老熟妇高潮一区二区三区| 欧美激情一区二区三区蜜桃视频| 亚洲av无码一区二区三区人| wwwwww.欧美系列| 真人bbbbbbbbb毛片| 99久久国产综合精品色伊| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 日av中文字幕| 久久尤物视频| 亚欧在线免费观看| 蜜臀精品一区二区三区在线观看 | 国内精品在线观看视频| 极品av少妇一区二区| 日本免费a视频| 狠狠色狠狠色综合日日tαg| 日韩精品在线视频免费观看| 91久久午夜| 久久久999视频| av资源网在线观看| 日韩精品第二页| 欧美在线日韩在线| 欧美日韩123区| 热re91久久精品国99热蜜臀| 精品日韩视频| 成人午夜高潮视频| 91精品啪在线观看国产爱臀| 国产一区二区高清不卡 | 日韩三级中文字幕| 好吊视频一二三区| 日韩电影中文字幕在线观看| 九色在线观看| 亚洲欧美日韩综合| 91av资源在线| 欧美超级乱淫片喷水| av有码在线观看| 国产不卡精品视男人的天堂| 青青草国产一区二区三区| 国产成人成网站在线播放青青| 天堂成人娱乐在线视频免费播放网站| 日本一区二区高清视频| 99久久夜色精品国产亚洲96| 女人被男人躁得好爽免费视频| 国产美女诱惑一区二区| 在线免费观看av的网站| 国产精品亚洲第一| 强伦人妻一区二区三区| 中文字幕在线一区二区三区| www.av视频在线观看| 在线观看不卡一区| 精品久久人妻av中文字幕| 日韩电影在线观看中文字幕| 午夜视频在线| 97avcom| 欧美高清免费| 精品视频导航| 五月天久久网站| 日韩av片在线看| 精品亚洲欧美一区| 国产白袜脚足j棉袜在线观看| 中文字幕av免费专区久久| 精品在线视频观看| 欧美日韩高清一区| 亚洲人午夜射精精品日韩| 日韩亚洲欧美成人| 欧美三级网站| 91成人免费看| 久久一区91| 欧美私人情侣网站| 国产不卡在线播放| 手机免费观看av| 黑人极品videos精品欧美裸| 精品国产av一区二区| 一区二区三区在线播放欧美| av资源在线| yy111111少妇影院日韩夜片| 亚洲精品tv久久久久久久久久| www.99在线| 久久久国产一区二区三区四区小说| 久久久一区二区三区四区| 欧美电影一区二区三区| 成人在线播放视频| 奇门遁甲1982国语版免费观看高清| 51精品国产| 青青草视频在线视频| 精品一区二区三区在线观看国产| 51妺嘿嘿午夜福利| 精品毛片网大全| 欧美一区二区三区激情| 欧美激情精品久久久久久| 日韩成人在线看| 成人在线观看毛片| 国产一本一道久久香蕉| 任你操精品视频| 欧美日韩一区二区电影| 国产特黄在线| 国产精品大片wwwwww| 国产精品欧美在线观看| 国产免费视频传媒| 久久精品夜夜夜夜久久| 亚洲视频 欧美视频| 亚洲图片欧美日产| 主播大秀视频在线观看一区二区| 欧美精品123| 日韩电影免费在线观看网站| 无码人妻aⅴ一区二区三区69岛| 色哟哟日韩精品| 国产三级视频在线| 国产精品777| 天天天综合网| 自拍一级黄色片| 亚洲一区二区三区三| 欧美在线 | 亚洲| 欧美亚洲国产精品| 精品国产一区二区三区噜噜噜 | 91小视频免费观看| 天天干天天干天天干天天| 国产午夜精品一区二区三区| 国产精品伦一区二区| 国产精品av免费| 成人午夜精品一区二区三区| 日韩在线视频免费播放| 亚洲天堂网在线观看| 欧美视频在线视频精品| 18视频在线观看娇喘| av高清不卡在线| 日韩中文字幕在线观看视频| 永久免费看mv网站入口亚洲| 国产95亚洲| 99热亚洲精品| 国产亚洲人成网站| 国产精品久久久久久无人区| 欧美极品少妇xxxxⅹ免费视频| 欧美三级电影在线| 亚洲第一中文av| 夜夜嗨av一区二区三区网页| 欧美精品a∨在线观看不卡| 国产精品毛片a∨一区二区三区|国| 99久久亚洲精品| 天天插天天射天天干| 91久久免费观看| yellow91字幕网在线| 精品国产一区二区三区四区vr| 日韩不卡一区二区三区 | 欧美性色xo影院| 色开心亚洲综合| 久久99导航| 国产一区二区三区四区五区入口 | 久久精品ww人人做人人爽| 青娱乐精品在线视频| 麻豆影视在线播放| 亚洲欧美制服第一页| 激情五月综合婷婷| 国产成人av影视| 亚洲国产一区二区视频| 欧美成人三区| 免费精品视频一区二区三区| 国产一区二区0|