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

你需要知道的、有用的Python功能和特點

開發 后端
在使用Python多年以后,我偶然發現了一些我們過去不知道的功能和特性。一些可以說是非常有用,但卻沒有充分利用。考慮到這一點,我編輯了一些你應該了解的Python功能特色。

你需要知道的、有用的Python功能和特點

在使用Python多年以后,我偶然發現了一些我們過去不知道的功能和特性。一些可以說是非常有用,但卻沒有充分利用。考慮到這一點,我編輯了一些你應該了解的Python功能特色。

帶任意數量參數的函數

你可能已經知道了Python允許你定義可選參數。但還有一個方法,可以定義函數任意數量的參數。

首先,看下面是一個只定義可選參數的例子

  1. def function(arg1="",arg2=""): 
  2.  
  3.     print "arg1: {0}".format(arg1) 
  4.  
  5.     print "arg2: {0}".format(arg2) 
  6.  
  7.   
  8.  
  9. function("Hello""World"
  10.  
  11. # prints args1: Hello 
  12.  
  13. # prints args2: World 
  14.  
  15.   
  16.  
  17. function() 
  18.  
  19. # prints args1: 
  20.  
  21. # prints args2: 

現在,讓我們看看怎么定義一個可以接受任意參數的函數。我們利用元組來實現。

  1. def foo(*args): # just use "*" to collect all remaining arguments into a tuple 
  2.  
  3.     numargs = len(args) 
  4.  
  5.     print "Number of arguments: {0}".format(numargs) 
  6.  
  7.     for i, x in enumerate(args): 
  8.  
  9.         print "Argument {0} is: {1}".format(i,x) 
  10.  
  11.   
  12.  
  13. foo() 
  14.  
  15. # Number of arguments: 0 
  16.  
  17.   
  18.  
  19. foo("hello"
  20.  
  21. # Number of arguments: 1 
  22.  
  23. # Argument 0 is: hello 
  24.  
  25.   
  26.  
  27. foo("hello","World","Again"
  28.  
  29. # Number of arguments: 3 
  30.  
  31. # Argument 0 is: hello 
  32.  
  33. # Argument 1 is: World 
  34.  
  35. # Argument 2 is: Again  

使用Glob()查找文件

大多Python函數有著長且具有描述性的名字。但是命名為glob()的函數你可能不知道它是干什么的除非你從別處已經熟悉它了。

它像是一個更強大版本的listdir()函數。它可以讓你通過使用模式匹配來搜索文件。

  1. import glob 
  2.  
  3.   
  4.  
  5. # get all py files 
  6.  
  7. files = glob.glob('*.py'
  8.  
  9. print files 
  10.  
  11.   
  12.  
  13. Output 
  14.  
  15. # ['arg.py''g.py''shut.py''test.py' 

你可以像下面這樣查找多個文件類型:

  1. import itertools as it, glob 
  2.  
  3.   
  4.  
  5. def multiple_file_types(*patterns): 
  6.  
  7.     return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns) 
  8.  
  9.   
  10.  
  11. for filename in multiple_file_types("*.txt""*.py"): # add as many filetype arguements 
  12.  
  13.     print filename 
  14.  
  15.   
  16.  
  17. output 
  18.  
  19. #=========# 
  20.  
  21. # test.txt 
  22.  
  23. # arg.py 
  24.  
  25. # g.py 
  26.  
  27. # shut.py 
  28.  
  29. # test.py  

如果你想得到每個文件的絕對路徑,你可以在返回值上調用realpath()函數:

  1. import itertools as it, glob, os 
  2.  
  3.   
  4.  
  5. def multiple_file_types(*patterns): 
  6.  
  7.     return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns) 
  8.  
  9.   
  10.  
  11. for filename in multiple_file_types("*.txt""*.py"): # add as many filetype arguements 
  12.  
  13.     realpath = os.path.realpath(filename) 
  14.  
  15.     print realpath 
  16.  
  17.   
  18.  
  19. output 
  20.  
  21. #=========# 
  22.  
  23. # C:\xxx\pyfunc\test.txt 
  24.  
  25. # C:\xxx\pyfunc\arg.py 
  26.  
  27. # C:\xxx\pyfunc\g.py 
  28.  
  29. # C:\xxx\pyfunc\shut.py 
  30.  
  31. # C:\xxx\pyfunc\test.py  

調試

下面的例子使用inspect模塊。該模塊用于調試目的時是非常有用的,它的功能遠比這里描述的要多。

這篇文章不會覆蓋這個模塊的每個細節,但會展示給你一些用例。

  1. import logging, inspect 
  2.  
  3.   
  4.  
  5. logging.basicConfig(level=logging.INFO, 
  6.  
  7.     format='%(asctime)s %(levelname)-8s %(filename)s:%(lineno)-4d: %(message)s'
  8.  
  9.     datefmt='%m-%d %H:%M'
  10.  
  11.     ) 
  12.  
  13. logging.debug('A debug message'
  14.  
  15. logging.info('Some information'
  16.  
  17. logging.warning('A shot across the bow'
  18.  
  19.   
  20.  
  21. def test(): 
  22.  
  23.     frame,filename,line_number,function_name,lines,index=\ 
  24.  
  25.         inspect.getouterframes(inspect.currentframe())[1] 
  26.  
  27.     print(frame,filename,line_number,function_name,lines,index
  28.  
  29.   
  30.  
  31. test() 
  32.  
  33.   
  34.  
  35. # Should print the following (with current date/time of course) 
  36.  
  37. #10-19 19:57 INFO     test.py:9   : Some information 
  38.  
  39. #10-19 19:57 WARNING  test.py:10  : A shot across the bow 
  40.  
  41. #(, 'C:/xxx/pyfunc/magic.py', 16, '', ['test()\n'], 0)  

生成唯一ID

在有些情況下你需要生成一個唯一的字符串。我看到很多人使用md5()函數來達到此目的,但它確實不是以此為目的。

其實有一個名為uuid()的Python函數是用于這個目的的。

  1. import uuid 
  2.  
  3. result = uuid.uuid1() 
  4.  
  5. print result 
  6.  
  7.   
  8.  
  9. output => various attempts 
  10.  
  11. # 9e177ec0-65b6-11e3-b2d0-e4d53dfcf61b 
  12.  
  13. # be57b880-65b6-11e3-a04d-e4d53dfcf61b 
  14.  
  15. # c3b2b90f-65b6-11e3-8c86-e4d53dfcf61b  

你可能會注意到,即使字符串是唯一的,但它們后邊的幾個字符看起來很相似。這是因為生成的字符串與電腦的MAC地址是相聯系的。

為了減少重復的情況,你可以使用這兩個函數。

  1. import hmac,hashlib 
  2.  
  3. key='1' 
  4.  
  5. data='a' 
  6.  
  7. print hmac.new(key, data, hashlib.sha256).hexdigest() 
  8.  
  9.   
  10.  
  11. m = hashlib.sha1() 
  12.  
  13. m.update("The quick brown fox jumps over the lazy dog"
  14.  
  15. print m.hexdigest() 
  16.  
  17.   
  18.  
  19. # c6e693d0b35805080632bc2469e1154a8d1072a86557778c27a01329630f8917 
  20.  
  21. # 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12  

序列化

你曾經需要將一個復雜的變量存儲在數據庫或文本文件中吧?你不需要想一個奇特的方法將數組或對象格轉化為式化字符串,因為Python已經提供了此功能。

  1. import pickle 
  2.  
  3.   
  4.  
  5. variable = ['hello', 42, [1,'two'],'apple'
  6.  
  7.   
  8.  
  9. # serialize content 
  10.  
  11. file = open('serial.txt','w'
  12.  
  13. serialized_obj = pickle.dumps(variable) 
  14.  
  15. file.write(serialized_obj) 
  16.  
  17. file.close() 
  18.  
  19.   
  20.  
  21. # unserialize to produce original content 
  22.  
  23. target = open('serial.txt','r'
  24.  
  25. myObj = pickle.load(target) 
  26.  
  27.   
  28.  
  29. print serialized_obj 
  30.  
  31. print myObj 
  32.  
  33.   
  34.  
  35. #output 
  36.  
  37. # (lp0 
  38.  
  39. # S'hello' 
  40.  
  41. # p1 
  42.  
  43. # aI42 
  44.  
  45. # a(lp2 
  46.  
  47. # I1 
  48.  
  49. aS'two' 
  50.  
  51. # p3 
  52.  
  53. # aaS'apple' 
  54.  
  55. # p4 
  56.  
  57. # a. 
  58.  
  59. # ['hello', 42, [1, 'two'], 'apple' 

這是一個原生的Python序列化方法。然而近幾年來JSON變得流行起來,Python添加了對它的支持。現在你可以使用JSON來編解碼。

  1. import json 
  2.  
  3.   
  4.  
  5. variable = ['hello', 42, [1,'two'],'apple'
  6.  
  7. print "Original {0} - {1}".format(variable,type(variable)) 
  8.  
  9.   
  10.  
  11. # encoding 
  12.  
  13. encode = json.dumps(variable) 
  14.  
  15. print "Encoded {0} - {1}".format(encode,type(encode)) 
  16.  
  17.   
  18.  
  19. #deccoding 
  20.  
  21. decoded = json.loads(encode) 
  22.  
  23. print "Decoded {0} - {1}".format(decoded,type(decoded)) 
  24.  
  25.   
  26.  
  27. output 
  28.  
  29.   
  30.  
  31. # Original ['hello', 42, [1, 'two'], 'apple'] - <type 'list'=""
  32.  
  33. # Encoded ["hello", 42, [1, "two"], "apple"] - <type 'str'=""
  34.  
  35. # Decoded [u'hello', 42, [1, u'two'], u'apple'] - <type 'list'="" 

這樣更緊湊,而且最重要的是這樣與JavaScript和許多其他語言兼容。然而對于復雜的對象,其中的一些信息可能丟失。

壓縮字符

當談起壓縮時我們通常想到文件,比如ZIP結構。在Python中可以壓縮長字符,不涉及任何檔案文件。

  1. import zlib 
  2.  
  3.   
  4.  
  5. string =  """   Lorem ipsum dolor sit amet, consectetur 
  6.  
  7.                 adipiscing elit. Nunc ut elit id mi ultricies 
  8.  
  9.                 adipiscing. Nulla facilisi. Praesent pulvinar, 
  10.  
  11.                 sapien vel feugiat vestibulum, nulla dui pretium orci, 
  12.  
  13.                 non ultricies elit lacus quis ante. Lorem ipsum dolor 
  14.  
  15.                 sit amet, consectetur adipiscing elit. Aliquam 
  16.  
  17.                 pretium ullamcorper urna quis iaculis. Etiam ac massa 
  18.  
  19.                 sed turpis tempor luctus. Curabitur sed nibh eu elit 
  20.  
  21.                 mollis congue. Praesent ipsum diam, consectetur vitae 
  22.  
  23.                 ornare a, aliquam a nunc. In id magna pellentesque 
  24.  
  25.                 tellus posuere adipiscing. Sed non mi metus, at lacinia 
  26.  
  27.                 augue. Sed magna nisi, ornare in mollis in, mollis 
  28.  
  29.                 sed nunc. Etiam at justo in leo congue mollis. 
  30.  
  31.                 Nullam in neque eget metus hendrerit scelerisque 
  32.  
  33.                 eu non enim. Ut malesuada lacus eu nulla bibendum 
  34.  
  35.                 id euismod urna sodales. ""
  36.  
  37.   
  38.  
  39. print "Original Size: {0}".format(len(string)) 
  40.  
  41.   
  42.  
  43. compressed = zlib.compress(string) 
  44.  
  45. print "Compressed Size: {0}".format(len(compressed)) 
  46.  
  47.   
  48.  
  49. decompressed = zlib.decompress(compressed) 
  50.  
  51. print "Decompressed Size: {0}".format(len(decompressed)) 
  52.  
  53.   
  54.  
  55. output 
  56.  
  57.   
  58.  
  59. # Original Size: 1022 
  60.  
  61. # Compressed Size: 423 
  62.  
  63. # Decompressed Size: 1022  

注冊Shutdown函數

有可模塊叫atexit,它可以讓你在腳本運行完后立馬執行一些代碼。

假如你想在腳本執行結束時測量一些基準數據,比如運行了多長時間:

  1. import atexit 
  2.  
  3. import time 
  4.  
  5. import math 
  6.  
  7.   
  8.  
  9. def microtime(get_as_float = False) : 
  10.  
  11.     if get_as_float: 
  12.  
  13.         return time.time() 
  14.  
  15.     else
  16.  
  17.         return '%f %d' % math.modf(time.time()) 
  18.  
  19. start_time = microtime(False
  20.  
  21. atexit.register(start_time) 
  22.  
  23.   
  24.  
  25. def shutdown(): 
  26.  
  27.     global start_time 
  28.  
  29.     print "Execution took: {0} seconds".format(start_time) 
  30.  
  31.   
  32.  
  33. atexit.register(shutdown) 
  34.  
  35.   
  36.  
  37. # Execution took: 0.297000 1387135607 seconds 
  38.  
  39. # Error in atexit._run_exitfuncs: 
  40.  
  41. # Traceback (most recent call last): 
  42.  
  43. #   File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs 
  44.  
  45. #     func(*targs, **kargs) 
  46.  
  47. # TypeError: 'str' object is not callable 
  48.  
  49. # Error in sys.exitfunc: 
  50.  
  51. # Traceback (most recent call last): 
  52.  
  53. #   File "C:\Python27\lib\atexit.py", line 24, in _run_exitfuncs 
  54.  
  55. #     func(*targs, **kargs) 
  56.  
  57. # TypeError: 'str' object is not callable  

打眼看來很簡單。只需要將代碼添加到腳本的***層,它將在腳本結束前運行。但如果腳本中有一個致命錯誤或者腳本被用戶終止,它可能就不運行了。

當你使用atexit.register()時,你的代碼都將執行,不論腳本因為什么原因停止運行。

結論

你是否意識到那些不是廣為人知Python特性很有用?請在評論處與我們分享。謝謝你的閱讀! 

責任編輯:龐桂玉 來源: Python開發者
相關推薦

2013-12-26 10:10:52

Python

2020-03-27 12:30:39

python開發代碼

2022-04-29 09:00:00

Platform架構內核線程

2022-08-10 09:03:35

TypeScript前端

2011-09-20 10:56:35

云計算PaaS

2018-09-10 09:26:33

2021-09-01 09:00:00

開發框架React 18

2018-05-30 15:15:47

混合云公共云私有云

2024-06-04 16:51:11

2019-10-23 10:36:46

DevSecOpsDevOps

2014-07-31 17:13:50

編碼程序員

2015-09-02 10:12:17

數據安全云存儲

2020-04-27 08:31:29

單例模式Python軟件設計模式

2013-03-04 09:34:48

CSSWeb

2015-06-30 10:59:22

MobileWeb適配

2023-02-10 08:44:05

KafkaLinkedIn模式

2019-09-19 09:44:08

HTTPCDNTCP

2023-01-09 17:23:14

CSS技巧

2017-11-03 15:39:29

深度學習面試問答

2022-07-07 09:00:17

TCP 連接HTTP 協議
點贊
收藏

51CTO技術棧公眾號

欧美一级特黄视频| 夜夜爽www精品| 在线观看国产免费视频| xxxxx性欧美特大| 成人中文字幕电影| 欧美刺激性大交免费视频| 深夜视频在线观看| 福利在线视频网站| 国产99精品国产| 欧美一二三视频| 久久人人爽人人爽人人片| 欧美日一区二区三区| 一区二区三区四区高清精品免费观看| 精品国产一区二区三区四区精华| 欧美性受xxx黑人xyx性爽| 午夜av一区| 亚洲免费av网址| 欧美污视频网站| 麻豆免费在线视频| 久久综合色综合88| 国产成人一区二区三区小说| 少妇毛片一区二区三区| 国产盗摄——sm在线视频| 日本一区二区三级电影在线观看| 日本国产高清不卡| 色偷偷噜噜噜亚洲男人| 91观看网站| 国产大学生自拍| 亚洲精品在线a| 在线一区二区视频| 国产一区二区在线网站| 国产一区二区小视频| 亚洲女同同性videoxma| 欧美国产日韩二区| 5566中文字幕| 超碰精品在线观看| 天天综合色天天综合色h| 久久免费99精品久久久久久| 日本一区二区三区精品| 国产欧美亚洲精品a| 欧美午夜视频网站| 日韩视频 中文字幕| 成人在线观看一区| 国产乱子轮精品视频| 中文字幕av一区| 黄色a级三级三级三级| 日本欧美韩国| 亚洲三级久久久| 国产视频不卡| 久久这里只有精品9| 另类亚洲自拍| 美女扒开尿口让男人操亚洲视频网站| 国产探花视频在线播放| 国产一区不卡| 91精品国产91久久综合桃花| 高清欧美精品xxxxx| 污视频网站在线免费| 亚洲靠逼com| 糖心vlog在线免费观看| 超碰超碰在线| 一区二区三区中文字幕精品精品| 男人日女人的bb| 天堂v在线观看| 白白色 亚洲乱淫| 精品亚洲欧美日韩| 免费资源在线观看| 国产麻豆视频一区| 99在线高清视频在线播放| 精品人妻一区二区三区四区不卡| 国产一区二区女| 成人羞羞视频免费| 一二区在线观看| 亚洲成人黄色av| 丁香一区二区| 亚洲精品福利资源站| 精品亚洲视频在线| 国内精品视频| 欧美探花视频资源| 色婷婷一区二区三区在线观看| 国产午夜精品一区在线观看| 欧美午夜精品一区二区三区电影| 亚洲激情影院| 中文成人综合网| 欧美日本亚洲| 一级日本在线| 一区二区三区在线高清| 精品久久久久久久久久中文字幕| 中国日本在线视频中文字幕| gogogo免费视频观看亚洲一| 久久综合九九| 欧美日韩欧美| 午夜视频久久久久久| 国产视频在线观看网站| 国产激情视频在线看| 一区二区三区视频在线看| 久艹视频在线免费观看| 欧美极品少妇videossex| 18欧美亚洲精品| 亚洲精品日韩在线观看| 欧美家庭影院| 欧美日韩视频在线第一区 | 午夜精品久久久久久久久久久久久 | 婷婷五月色综合| wwwav在线| 日韩欧美主播在线| 中文字幕av一区二区三区人妻少妇| 九九九伊在线综合永久| 日韩亚洲国产中文字幕欧美| 性生活在线视频| 女人丝袜激情亚洲| 欧美日韩国产成人高清视频| 青青草原国产视频| 久久午夜激情| 国产精品一区久久| 手机看片国产1024| 亚洲美女免费视频| 九九九在线观看视频| 嗯用力啊快一点好舒服小柔久久| 精品成人免费观看| 一区二区三区影视| 日韩高清不卡在线| 成人性教育视频在线观看| 国产男男gay体育生网站| 久久伊99综合婷婷久久伊| 九九久久九九久久| 日本成人在线网站| 日韩免费看网站| 精品在线观看一区| 日韩av不卡一区二区| 裸模一区二区三区免费| 91在线网址| 色综合久久久久综合99| 亚洲少妇18p| 精品国产成人| 欧美日本中文字幕| 一道本无吗一区| 国产精品情趣视频| 亚洲最大综合网| av亚洲在线观看| 自拍偷拍亚洲欧美| 国产一级在线视频| 国产传媒久久文化传媒| 亚洲成人精品电影在线观看| 成人啊v在线| 欧美一区二区福利在线| 香蕉网在线播放| 亚洲成人精品| 欧美洲成人男女午夜视频| 手机看片一区二区| 最新国产精品久久精品| 欧美日韩国产精品激情在线播放| 精品按摩偷拍| 久久人人爽人人爽爽久久| 国产高清中文字幕| 国产精品小仙女| 亚洲中文字幕无码一区二区三区| 精品一区二区三区中文字幕在线 | 日本成人三级电影| 亚洲欧美福利视频| 国产日韩久久久| 处破女av一区二区| 男人插女人视频在线观看| 国产区精品视频在线观看豆花| 色噜噜国产精品视频一区二区| 日韩免费观看一区二区| 91蜜桃免费观看视频| 黑人巨大国产9丨视频| 国产一区精品二区| 最新国产精品拍自在线播放 | 久久av老司机精品网站导航| 久久久久久99| 成人性生交大片免费看网站 | 国产人妖在线观看| 一区二区三区四区五区精品视频| 欧美精品一区二区三区在线看午夜 | 在线免费观看av的网站| 欧美国产一级| 成人综合电影| 91三级在线| 亚洲成人av资源网| 亚洲无码精品一区二区三区| 欧美激情综合五月色丁香小说| 欧美日韩二三区| 大奶一区二区三区| 热草久综合在线| 麻豆传媒在线观看| 精品国产乱码久久久久久闺蜜 | 欧美日韩精品一区视频| 69精品无码成人久久久久久| 久久精品国产77777蜜臀| 天堂一区二区三区| 日韩免费成人| 国产精品99久久久久久久久久久久| 午夜福利一区二区三区| 欧美亚洲综合另类| 女人十八毛片嫩草av| 老司机午夜精品视频| 中文字幕日韩一区二区三区不卡| 成功精品影院| 成人久久一区二区| 精品国产99久久久久久| 欧美久久久久久久久| 国产香蕉在线视频| 国产精品家庭影院| 欧美双性人妖o0| 精品一区二区日韩| 亚洲精品天堂成人片av在线播放| 精品国产欧美| 欧美极品美女电影一区| av在线免费观看网| 制服视频三区第一页精品| 久久久全国免费视频| 国产精品免费网站在线观看| 国产欧美一区二| 亚洲一区不卡| 日韩在线电影一区| 国产精品流白浆在线观看| 成人欧美在线观看| 国产亚洲一区二区手机在线观看 | 丁香婷婷久久| 久久亚洲电影天堂| 国产小视频免费在线网址| 精品久久久久久久久久久久久久久| 最近中文字幕在线观看视频| **性色生活片久久毛片| 亚洲码无人客一区二区三区| 成人h动漫精品一区二区| 激情六月丁香婷婷| 亚洲国产日韩欧美一区二区三区| 无码毛片aaa在线| 欧美oldwomenvideos| 欧美一区二区综合| 婷婷亚洲精品| 国产有码在线一区二区视频| 色噜噜狠狠狠综合欧洲色8| 最近2019免费中文字幕视频三| 飘雪影视在线观看免费观看| 欧美男人的天堂一二区| 超碰在线97观看| 欧洲一区在线电影| 欧美黄色一区二区三区| 亚洲欧美日韩在线| 999精品视频在线观看播放| 中文字幕av免费专区久久| 成年人小视频在线观看| 日韩在线一二三区| 成年人网站大全| 日本va欧美va精品| 国产中文字幕乱人伦在线观看| av中文字幕一区二区| 日韩欧美在线一区二区| 高清日韩中文字幕| 国产精品一区而去| 亚洲在线资源| 91夜夜未满十八勿入爽爽影院 | 特级西西人体高清大胆| 国产精品久久久久aaaa| 免费看特级毛片| 亚洲精选一二三| 日本免费在线播放| 狠狠躁18三区二区一区| 无码免费一区二区三区| 欧美在线制服丝袜| 久久国产精品免费看| 一本色道a无线码一区v| 亚洲男人天堂网址| 精品成人av一区| 69av.com| 中文字幕亚洲电影| 久久一级黄色片| 欧美日韩亚洲高清| 国产在线欧美在线| 欧美日韩人人澡狠狠躁视频| www.youjizz.com亚洲| 精品国产乱码久久久久久婷婷| 日韩在线 中文字幕| 午夜亚洲国产au精品一区二区| 免费观看一区二区三区毛片| 亚洲一区二区三区四区五区中文| 中文字幕在线观看免费视频| 国产精品电影一区二区| 久草中文在线视频| 色综合久久综合中文综合网| 日本在线观看视频网站| 色8久久人人97超碰香蕉987| 国产又大又粗又长| 亚洲国产小视频| 四虎久久免费| 久久久久久久久久久网站| 日本aa在线| 国产精品91一区| 亚洲小说春色综合另类电影| 3d动漫啪啪精品一区二区免费| 色综合久久久| 精品免费国产| 久久精品亚洲人成影院| 男人日女人下面视频| 亚洲综合另类| 免费午夜视频在线观看| 国产在线视视频有精品| 亚洲男人天堂2021| 国产精品一区专区| 精品人妻无码一区二区三区换脸| 亚洲欧美偷拍另类a∨色屁股| 亚洲男人的天堂在线视频| 色综合咪咪久久| 成人免费观看在线视频| 亚洲国产精品字幕| 欧洲伦理片一区 二区 三区| 亚洲人成人99网站| 国产丝袜在线观看视频| 国产男女猛烈无遮挡91| 亚洲成人一品| 成人一区二区免费视频| 免费久久99精品国产自在现线| 亚洲一二区在线观看| 成人av在线影院| 日韩成人短视频| 欧美视频日韩视频在线观看| 国产又粗又猛又爽又黄的视频一 | 亚洲一区二区三区免费在线观看 | 国产亚洲一二三区| 国产精品成人久久| 欧美色视频日本版| 中文字幕一区二区免费| 正在播放一区二区| 999国产在线视频| 国产精品99免视看9| 欧州一区二区三区| 小说区视频区图片区| 日本va欧美va瓶| 四虎精品一区二区| 国产色综合久久| 亚洲精品卡一卡二| 91国偷自产一区二区开放时间 | 久久久久久久电影一区| 国产精品2区| 久久久久一区二区| 91精品综合久久久久久久久久久| 欧美国产综合在线| 国产成人小视频| 成人在线手机视频| 欧洲一区二区三区免费视频| аⅴ资源新版在线天堂| 国产精品精品视频一区二区三区| 欧美经典一区| 日本一区二区久久精品| 久久一二三四| avtt中文字幕| 国产精品欧美一区喷水| 日本天堂在线视频| 精品国产免费久久久久久婷婷| 蜜桃久久久久久| 国产伦精品一区二区三区视频女| 日韩人体视频一二区| 麻豆av电影在线观看| 美女av一区二区| 日本一区二区三区视频在线| 欧美亚洲丝袜| 免费高清不卡av| 日韩精品一区二区三区在线视频| 在线播放日韩导航| 在线看三级电影| 国产美女精彩久久| 99国产精品一区二区| 一起草最新网址| 中文字幕中文在线不卡住| 国产精品一二三四五区| 亚洲天堂免费视频| 国产盗摄一区二区| 精品乱码一区二区三区| 日本亚洲视频在线| 蜜臀久久精品久久久用户群体| 欧美亚一区二区| a级影片在线观看| 国产视频精品网| 日韩av成人高清| 欧美极品aaaaabbbbb| 亚洲国产天堂久久综合网| 爱看av在线入口| 成人在线免费观看一区| 欧美欧美天天天天操| 中国黄色a级片| 欧美日韩国产一区中文午夜| 亚洲经典一区二区| 国产大片精品免费永久看nba| 亚洲日本三级| 爽爽爽在线观看| 午夜成人在线视频| 欧美在线精品一区二区三区| 日本伊人精品一区二区三区介绍 | 不卡av在线网| 91精品国产高潮对白| 精品国产青草久久久久福利| 婷婷综合六月| 日韩一区二区电影在线观看| 日韩电影在线一区二区三区| 免费日韩在线视频| 国产一区二区三区在线看 | 五月天免费网站|