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

終于學會Python?別鬧了,本文中的東西你搞懂了嗎?

開發 后端
作為一名新手Python程序員,你首先需要學習的內容之一就是如何導入模塊或包。但是我注意到,那些許多年來不時使用Python的人并不是都知道Python的導入機制其實非常靈活。

作為一名新手Python程序員,你首先需要學習的內容之一就是如何導入模塊或包。但是我注意到,那些許多年來不時使用Python的人并不是都知道Python的導入機制其實非常靈活。在本文中,我們將探討以下話題:

[[275073]]

  • 常規導入(regular imports)
  • 使用from語句導入
  • 相對導入(relative imports)
  • 可選導入(optional imports)
  • 本地導入(local imports)
  • 導入注意事項

常規導入

常規導入應該是最常使用的導入方式,大概是這樣的:

  1. import sys 

你只需要使用 import一詞,然后指定你希望導入的模塊或包即可。通過這種方式導入的好處是可以一次性導入多個包或模塊:

  1. import os, sys, time 

雖然這節省了空間,但是卻違背了Python風格指南。Python風格指南建議將每個導入語句單獨成行。

有時在導入模塊時,你想要重命名這個模塊。這個功能很容易實現:

  1. import sys as system 
  2. print(system.platform) 

上面的代碼將我們導入的 sys模塊重命名為system。我們可以按照和以前一樣的方式調用模塊的方法,但是可以用一個新的模塊名。也有某些子模塊必須要使用點標記法才能導入。

  1. import urllib.error 

這個情況不常見,但是對此有所了解總是沒有壞處的。

使用from語句導入

很多時候你只想要導入一個模塊或庫中的某個部分。我們來看看在Python中如何實現這點:

  1. from functools import lru_cache 

上面這行代碼可以讓你直接調用 lru_cache。如果你按常規方式導入functools,那么你就必須像這樣調用lru_cache:

  1. functools.lru_cache(*args) 

根據你實際的使用場景,上面的做法可能是更好的。在復雜的代碼庫中,能夠看出某個函數是從哪里導入的這點很有用的。不過,如果你的代碼維護的很好,模塊化程度高,那么只從某個模塊中導入一部分內容也是非常方便和簡潔的。

當然,你還可以使用from方法導入模塊的全部內容,就像這樣:

  1. from os import * 

這種做法在少數情況下是挺方便的,但是這樣也會打亂你的命名空間。問題在于,你可能定義了一個與導入模塊中名稱相同的變量或函數,這時如果你試圖使用 os模塊中的同名變量或函數,實際使用的將是你自己定義的內容。因此,你最后可能會碰到一個相當讓人困惑的邏輯錯誤。標準庫中我唯一推薦全盤導入的模塊只有Tkinter。

如果你正好要寫自己的模塊或包,有人會建議你在 __init__.py文件中導入所有內容,讓模塊或者包使用起來更方便。我個人更喜歡顯示地導入,而非隱式地導入。

你也可以采取折中方案,從一個包中導入多個項:

  1. from os import path, walk, unlink 
  2. from os import uname, remove 

在上述代碼中,我們從 os模塊中導入了5個函數。你可能注意到了,我們是通過多次從同一個模塊中導入實現的。當然,如果你愿意的話,你也可以使用圓括號一次性導入多個項:

  1. from os import (path, walk, unlink, uname,  
  2. remove, rename) 

這是一個有用的技巧,不過你也可以換一種方式:

  1. from os import path, walk, unlink, uname, \ 
  2. remove, rename 

上面的反斜杠是Python中的續行符,告訴解釋器這行代碼延續至下一行。

相對導入

PEP 328介紹了引入相對導入的原因,以及選擇了哪種語法。具體來說,是使用句點來決定如何相對導入其他包或模塊。這么做的原因是為了避免偶然情況下導入標準庫中的模塊產生沖突。這里我們以PEP 328中給出的文件夾結構為例,看看相對導入是如何工作的:

  1. my_package/ 
  2. __init__.py 
  3. subpackage1/ 
  4. __init__.py 
  5. module_x.py 
  6. module_y.py 
  7. subpackage2/ 
  8. __init__.py 
  9. module_z.py 
  10. module_a.py 

在本地磁盤上找個地方創建上述文件和文件夾。在頂層的 __init__.py文件中,輸入以下代碼:

  1. from . import subpackage1 
  2. from . import subpackage2 

接下來進入 subpackage1文件夾,編輯其中的__init__.py文件,輸入以下代碼:

  1. from . import module_x 
  2. from . import module_y 

現在編輯 module_x.py文件,輸入以下代碼:

  1. from .module_y import spam as ham 
  2. def main: 
  3. ham 

最后編輯 module_y.py文件,輸入以下代碼:

  1. def spam: 
  2. print('spam ' * 3) 

打開終端, cd至my_package包所在的文件夾,但不要進入my_package。在這個文件夾下運行Python解釋器。我使用的是IPython,因為它的自動補全功能非常方便:

  1. In [1]: import my_package 
  2. In [2]: my_package.subpackage1.module_x 
  3. Out[2]: <module 'my_package.subpackage1.module_x' from 'my_package/subpackage1/module_x.py'
  4. In [3]: my_package.subpackage1.module_x.main 
  5. spam spam spam 

相對導入適用于你最終要放入包中的代碼。如果你編寫了很多相關性強的代碼,那么應該采用這種導入方式。你會發現PyPI上有很多流行的包也是采用了相對導入。還要注意一點,如果你想要跨越多個文件層級進行導入,只需要使用多個句點即可。不過,PEP 328建議相對導入的層級不要超過兩層。

還要注意一點,如果你往 module_x.py文件中添加了if__name__==‘__main__’,然后試圖運行這個文件,你會碰到一個很難理解的錯誤。編輯一下文件,試試看吧!

  1. from . module_y import spam as ham 
  2. def main: 
  3. ham 
  4. if __name__ == '__main__'
  5. # This won't work
  6. main 

現在從終端進入 subpackage1文件夾,執行以下命令:

  1. python module_x.py 

如果你使用的是Python 2,你應該會看到下面的錯誤信息:

  1. Traceback (most recent call last): 
  2. File "module_x.py", line 1, in <module> 
  3. from . module_y import spam as ham 
  4. ValueError: Attempted relative import in non-package 

如果你使用的是Python 3,錯誤信息大概是這樣的:

  1. Traceback (most recent call last): 
  2. File "module_x.py", line 1, in <module> 
  3. from . module_y import spam as ham 
  4. SystemError: Parent module '' not loaded, cannot perform relative import 

這指的是, module_x.py是某個包中的一個模塊,而你試圖以腳本模式執行,但是這種模式不支持相對導入。

如果你想在自己的代碼中使用這個模塊,那么你必須將其添加至Python的導入檢索路徑(import search path)。最簡單的做法如下:

  1. import sys 
  2. sys.path.append('/path/to/folder/containing/my_package'
  3. import my_package 

注意,你需要添加的是 my_package的上一層文件夾路徑,而不是my_package本身。原因是my_package就是我們想要使用的包,所以如果你添加它的路徑,那么將無法使用這個包。

我們接下來談談可選導入。

可選導入(Optional imports)

如果你希望優先使用某個模塊或包,但是同時也想在沒有這個模塊或包的情況下有備選,你就可以使用可選導入這種方式。這樣做可以導入支持某個軟件的多種版本或者實現性能提升。以github2包中的代碼為例:

  1. try: 
  2. For Python 3 
  3. from http.client import responses 
  4. except ImportError: # For Python 2.5-2.7 
  5. try: 
  6. from httplib import responses # NOQA 
  7. except ImportError: # For Python 2.4 
  8. from BaseHTTPServer import BaseHTTPRequestHandler as _BHRH 
  9. responses = dict([(k, v[0]) for k, v in _BHRH.responses.items]) 

lxml包也有使用可選導入方式:

  1. try: 
  2. from urlparse import urljoin 
  3. from urllib2 import urlopen 
  4. except ImportError: 
  5. # Python 3 
  6. from urllib.parse import urljoin 
  7. from urllib.request import urlopen 

正如以上示例所示,可選導入的使用很常見,是一個值得掌握的技巧。

局部導入

當你在局部作用域中導入模塊時,你執行的就是局部導入。如果你在Python腳本文件的頂部導入一個模塊,那么你就是在將該模塊導入至全局作用域,這意味著之后的任何函數或方法都可能訪問該模塊。例如:

  1. import sys # global scope 
  2. def square_root(a): 
  3. # This import is into the square_root functions local scope 
  4. import math 
  5. return math.sqrt(a) 
  6. def my_pow(base_num, power): 
  7. return math.pow(base_num, power) 
  8. if __name__ == '__main__'
  9. print(square_root(49)) 
  10. print(my_pow(2, 3)) 

這里,我們將 sys模塊導入至全局作用域,但我們并沒有使用這個模塊。然后,在square_root函數中,我們將math模塊導入至該函數的局部作用域,這意味著math模塊只能在square_root函數內部使用。如果我們試圖在my_pow函數中使用math,會引發NameError。試著執行這個腳本,看看會發生什么。

使用局部作用域的好處之一,是你使用的模塊可能需要很長時間才能導入,如果是這樣的話,將其放在某個不經常調用的函數中或許更加合理,而不是直接在全局作用域中導入。老實說,我幾乎從沒有使用過局部導入,主要是因為如果模塊內部到處都有導入語句,會很難分辨出這樣做的原因和用途。根據約定,所有的導入語句都應該位于模塊的頂部。

導入注意事項

在導入模塊方面,有幾個程序員常犯的錯誤。這里我們介紹兩個。

  • 循環導入(circular imports)
  • 覆蓋導入(Shadowed imports,暫時翻譯為覆蓋導入)

先來看看循環導入。

循環導入

如果你創建兩個模塊,二者相互導入對方,那么就會出現循環導入。例如:

  1. # a.py 
  2. import b 
  3. def a_test: 
  4. print("in a_test"
  5. b.b_test 
  6. a_test 

然后在同個文件夾中創建另一個模塊,將其命名為 b.py。

  1. import a 
  2. def b_test: 
  3. print('In test_b"'
  4. a.a_test 
  5. b_test 

如果你運行任意一個模塊,都會引發 AttributeError。這是因為這兩個模塊都在試圖導入對方。簡單來說,模塊a想要導入模塊b,但是因為模塊b也在試圖導入模塊a(這時正在執行),模塊a將無法完成模塊b的導入。我看過一些解決這個問題的破解方法(hack),但是一般來說,你應該做的是重構代碼,避免發生這種情況。

覆蓋導入

當你創建的模塊與標準庫中的模塊同名時,如果你導入這個模塊,就會出現覆蓋導入。舉個例子,創建一個名叫 math.py的文件,在其中寫入如下代碼:

  1. import math 
  2. def square_root(number): 
  3. return math.sqrt(number) 
  4. square_root(72) 

現在打開終端,試著運行這個文件,你會得到以下回溯信息(traceback):

  1. Traceback (most recent call last): 
  2. File "math.py", line 1, in <module> 
  3. import math 
  4. File "/Users/michael/Desktop/math.py", line 6, in <module> 
  5. square_root(72) 
  6. File "/Users/michael/Desktop/math.py", line 4, in square_root 
  7. return math.sqrt(number) 
  8. AttributeError: module 'math' has no attribute 'sqrt' 

這到底是怎么回事?其實,你運行這個文件的時候,Python解釋器首先在當前運行腳本所處的的文件夾中查找名叫 math的模塊。在這個例子中,解釋器找到了我們正在執行的模塊,試圖導入它。但是我們的模塊中并沒有叫sqrt的函數或屬性,所以就拋出了AttributeError。

總結

在本文中,我們講了很多有關導入的內容,但是還有部分內容沒有涉及。PEP 302中介紹了導入鉤子(import hooks),支持實現一些非常酷的功能,比如說直接從github導入。Python標準庫中還有一個importlib模塊,值得查看學習。當然,你還可以多看看別人寫的代碼,不斷挖掘更多好用的妙招。

 

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

2024-08-12 15:23:43

LangChain

2018-10-20 16:05:12

iOSAPP開發

2024-07-17 09:32:19

2024-09-23 09:12:20

2024-12-03 08:16:57

2024-10-16 07:58:48

2025-07-15 10:41:44

2017-09-28 15:18:39

互聯網Tier5數據中心

2024-08-01 08:41:08

2024-09-12 08:28:32

2024-10-17 13:05:35

神經網絡算法機器學習深度學習

2018-04-22 06:59:24

SDN數據中心網絡

2024-10-08 10:16:22

2024-10-28 00:00:10

機器學習模型程度

2025-01-15 11:25:35

2025-01-20 09:21:00

2024-10-08 15:09:17

2024-12-26 00:34:47

2021-09-28 08:31:22

Flex:1 CSSflex屬性

2024-10-28 15:52:38

機器學習特征工程數據集
點贊
收藏

51CTO技術棧公眾號

最新国产精品久久精品| 久草中文综合在线| 亚洲欧美另类在线观看| 人妻无码视频一区二区三区| 成人在线免费看黄| 波多野结衣中文字幕一区| 国产成人久久久精品一区| 国产视频精品免费| 欧美黑人巨大videos精品| 欧美性大战久久久久久久蜜臀| 国产一级大片免费看| 免费在线毛片| 成人免费视频一区| 国产精品视频免费在线观看| 国产 日韩 欧美 成人| 成人激情视频| 亚洲男人的天堂在线| 精品人妻一区二区三区免费| 日韩免费福利视频| 亚洲第一狼人社区| 一区二区三区四区不卡| 手机在线观看毛片| 国产曰批免费观看久久久| 欧美在线视频免费播放| 免费在线一级片| 99tv成人| 亚洲欧洲日产国码av系列天堂| 欧美激情第四页| 国产精品久久久久久妇女| 精品久久久中文| 美女扒开大腿让男人桶| 国产黄色小视频在线| 国产农村妇女精品| 日本10禁啪啪无遮挡免费一区二区| xxxx18国产| 精品午夜久久福利影院| 国产精品日韩在线一区| 欧美日韩a v| 午夜在线视频一区二区区别| 97久久精品国产| 久久精品视频6| 亚洲手机在线| 国模精品视频一区二区三区| 国产精品白嫩白嫩大学美女| 亚洲一区二区| 久久人体大胆视频| 欧美在线视频第一页| 婷婷综合亚洲| 久久躁狠狠躁夜夜爽| av黄色免费在线观看| 91中文字幕精品永久在线| 在线日韩中文字幕| 青青青视频在线免费观看| jizzjizz欧美69巨大| 国产亚洲精品久久久久动| 偷拍女澡堂一区二区三区| 国产精品网址| 亚洲韩国青草视频| 毛片网站免费观看| 日韩mv欧美mv国产网站| 亚洲欧美中文字幕| 中文字幕伦理片| 婷婷激情综合| 欧美高清视频在线| 日产精品久久久久| 另类国产ts人妖高潮视频| 国产成人一区三区| 中文字幕在线观看欧美| 国产在线视视频有精品| 亚洲综合中文字幕68页| 少妇又色又爽又黄的视频| 国产一区二区三区在线观看免费 | 福利一区在线观看| 国产精品久久久久久久天堂第1集| 日本黄色三级视频| 国产午夜亚洲精品理论片色戒| 日韩免费av一区二区三区| av片在线免费观看| 亚洲欧美二区三区| 国产日韩欧美精品在线观看| 欧美粗大gay| 欧美人妇做爰xxxⅹ性高电影 | 亚洲一二三区视频| 亚洲欧美国产日韩天堂区| 极品尤物一区二区| 国产精品mm| 日韩免费在线视频| 99热这里只有精品1| 99久久精品久久久久久清纯| 日韩理论片在线观看| 日韩123区| 色综合天天天天做夜夜夜夜做| 中文字幕有码av| 成人av婷婷| 色偷偷88888欧美精品久久久| 九九热视频在线免费观看| 亚洲久久成人| 91最新国产视频| 欧美高清电影在线| 一区二区三区中文字幕在线观看| 日本熟妇人妻xxxxx| 日韩精品一级| 一本色道久久88亚洲综合88 | 日韩欧美有码在线| 国产精品嫩草69影院| 国产精品一在线观看| 欧美成人精品一区二区| 国产一级片免费视频| 国产91精品在线观看| 亚洲欧美日韩在线综合 | 欧美日韩免费在线| 亚洲欧美日韩一二三区| 国模吧精品视频| 国内精品小视频在线观看| 一级特黄aaa大片在线观看| 91日韩精品一区| 波多野结衣与黑人| 高清不卡一区| 中文字幕一区二区精品| 欧美激情黑白配| 丁香婷婷综合网| 艳色歌舞团一区二区三区| 中文字幕资源网在线观看免费| 日韩一区二区三区电影在线观看| 夫妇露脸对白88av| 性高湖久久久久久久久| 国产亚洲欧美一区二区| 搞黄网站在线看| 日韩欧美在线网站| 老湿机69福利| 国产精品一级片在线观看| 亚洲精品一区二区三| yw.尤物在线精品视频| 亚洲免费视频在线观看| 欧美在线观看不卡| 99久久夜色精品国产网站| 欧美精品卡一卡二| www.久久东京| 国内偷自视频区视频综合| www.com在线观看| 一级女性全黄久久生活片免费| 91aaa精品| 欧美激情在线| 99在线视频免费观看| 美女航空一级毛片在线播放| 欧美成人bangbros| 国产在线精品观看| 91免费视频网址| 女人天堂av手机在线| 亚洲精品亚洲人成在线| 欧洲亚洲妇女av| 国产福利片在线| 欧美日韩黄色影视| 手机在线免费看毛片| 国产精品白丝jk黑袜喷水| 国产精品三级一区二区| 丁香婷婷成人| 茄子视频成人在线| 成人网视频在线观看| 欧美日韩一级片在线观看| 91精品国产闺蜜国产在线闺蜜| 国产在线观看一区二区| 欧美图片激情小说| 亚洲免费成人av在线| 国产精品久久久亚洲| 黄在线免费看| 欧美精品一区二区高清在线观看 | 国产精品二区影院| 精品伦理一区二区三区| 欧亚一区二区| 欧美精品一区在线播放| 亚洲人在线观看视频| 在线观看视频91| 青青草国产在线观看| 99精品久久99久久久久| 天天干天天干天天干天天干天天干| 99久久婷婷这里只有精品 | 亚洲国产日韩一区二区| 少妇按摩一区二区三区| 精品一区二区av| 久久久久久www| 精品视频国产| 99久久久精品免费观看国产| 亚洲精品国产精品国产| 日韩亚洲成人av在线| 国产综合在线播放| 欧美色手机在线观看| 久草视频在线资源| 国产婷婷一区二区| 欧美久久久久久久久久久| 日本中文字幕一区二区有限公司| 女人床在线观看| 国产精品一区二区三区av麻| 99国产超薄丝袜足j在线观看 | 色呦呦一区二区三区| 麻豆明星ai换脸视频| 久久综合色之久久综合| 北条麻妃亚洲一区| 人人精品人人爱| www.av毛片| 亚洲破处大片| 欧美一区观看| 日韩超碰人人爽人人做人人添| 91网站免费观看| 电影亚洲一区| 久久久久久亚洲精品中文字幕| 91成人高清| 亚洲情综合五月天| 老司机午夜福利视频| 欧美精品一卡两卡| 国产一级片av| 日韩欧美在线网址| 日韩和一区二区| 一区二区成人在线| 伊人在线视频观看| 国产精品久久久久久久裸模| 久久偷拍免费视频| 成人午夜视频在线| 人妻精品久久久久中文字幕69| 日产欧产美韩系列久久99| 久久无码高潮喷水| 亚洲婷婷在线| 成人国产在线看| 在线一区免费| 杨幂一区欧美专区| 成人网18免费网站| 日韩欧美电影一区二区| 中文有码一区| 六月婷婷久久| 欧美交a欧美精品喷水| 国产成人精品一区二区三区福利| 国产精品igao视频网网址不卡日韩| 国产精品久久国产精品99gif| 欧美人体一区二区三区| 人九九综合九九宗合| 亚洲小少妇裸体bbw| 91国语精品自产拍在线观看性色| 激情影院在线| 欧美激情亚洲自拍| av男人的天堂在线观看| 992tv成人免费影院| 97超碰在线免费| 国内精品久久久久久中文字幕| 51精品视频| **欧美日韩vr在线| 中文在线аv在线| 国产z一区二区三区| 欧美色999| 国产欧美日韩亚洲精品| 啪啪av大全导航福利综合导航| 91精品国产综合久久久久久久久| 美女视频一区| 91九色露脸| 成人在线tv视频| 女人一区二区三区| 日韩精品欧美激情一区二区| www.午夜色| 国产精品九九| 国产精品va无码一区二区| 首页欧美精品中文字幕| 艹b视频在线观看| 国产一区91精品张津瑜| 在线免费看黄色片| 久久伊99综合婷婷久久伊| 在线国产视频一区| 中文字幕日韩av资源站| 欧美爱爱免费视频| 亚洲大尺度视频在线观看| 黄色在线免费观看| 欧美日韩国产bt| 亚洲欧美激情国产综合久久久| 亚洲精品久久久久久久久| 精品无人乱码| 久久影院中文字幕| 九色porny自拍视频在线观看 | 一本一道精品欧美中文字幕| 日韩一级片在线观看| 头脑特工队2在线播放| 在线观看91久久久久久| 欧美aaaxxxx做受视频| 欧美一级视频一区二区| 亚洲精品大片| 久久久久久久久久久久久9999| 日韩一区自拍| 欧美又粗又长又爽做受| 日本系列欧美系列| 亚洲少妇一区二区| 欧美韩国日本一区| 久久免费少妇高潮99精品| 欧美在线观看18| 日本免费网站在线观看| 中文字幕在线国产精品| 国产精品国精产品一二| 国产精品免费网站| 国产精品极品国产中出| 一区二区日本伦理| 亚洲一区二区伦理| 爱情岛论坛亚洲自拍| 国产亚洲精品精华液| 久久精品欧美一区二区| 欧美男同性恋视频网站| 欧美一区二区三区少妇| 欧美激情极品视频| 亚洲精品tv| 日韩中文字幕一区二区| 日韩视频不卡| 佐佐木明希电影| 中文字幕欧美日韩一区| 亚洲综合一二三| 日韩欧美一区中文| 成年在线电影| 日本电影亚洲天堂| 国产精品xxx在线观看| 国产911在线观看| 裸体在线国模精品偷拍| 在线免费看黄视频| 天天综合网 天天综合色| www.av导航| 欧美老女人性视频| 综合久久伊人| 中文字幕欧美日韩一区二区三区| 老司机午夜精品视频| 亚洲调教欧美在线| 亚洲专区一二三| 国内毛片毛片毛片毛片| 久久视频在线看| 二区三区精品| 久久久久福利视频| 国产一区二区在线免费观看| 国产黄色片在线| 欧美日韩一区二区三区在线| 国产女人在线观看| 国产99在线|中文| 国产精品一区二区av交换| 日韩avxxx| 久久久久久99久久久精品网站| 二区视频在线观看| 亚洲女人天堂网| 亚洲va中文在线播放免费| 欧洲国产精品| 日韩二区在线观看| 青青草自拍偷拍| 欧美男生操女生| 影音先锋男人在线资源| 99久热re在线精品996热视频| 欧美日韩亚洲一区三区| 91porn在线| 狠狠干狠狠久久| 欧美偷拍视频| 国产精品自拍网| 亚洲精品一区二区妖精| 台湾佬美性中文| 亚洲成av人片www| 久久久免费精品| 亚洲美女久久| 免费一区二区三区在线观看 | 在线观看欧美日韩| 国产一区二区色噜噜| 热这里只有精品| 成人国产在线观看| www.国产一区二区| 色婷婷久久一区二区| 欧美久久亚洲| 你真棒插曲来救救我在线观看| 99国产精品国产精品久久| 一级特黄免费视频| 欧美大胆在线视频| 激情亚洲另类图片区小说区| 久久久久免费精品| 亚洲欧美一区二区久久| 婷婷开心激情网| 国产精品视频1区| 一区免费视频| 蜜臀久久99精品久久久久久| 3d成人动漫网站| av资源网在线播放| 亚洲一区精品视频| 粉嫩在线一区二区三区视频| 一区二区三区在线观看av| 波霸ol色综合久久| 麻豆国产欧美一区二区三区r| 欧美一级裸体视频| 亚洲综合色噜噜狠狠| 蝌蚪视频在线播放| 亚洲va码欧洲m码| 老鸭窝亚洲一区二区三区| 国产女人被狂躁到高潮小说| 国产视频精品在线| 成人综合日日夜夜| 熟妇人妻va精品中文字幕| 亚洲人成7777| 久香视频在线观看| 国产精品精品软件视频| 免费高清在线视频一区·| 国产无码精品在线观看| 色偷偷av一区二区三区| 啪啪国产精品| 久久久久亚洲av无码麻豆| 在线亚洲人成电影网站色www| 欧美xxxx性xxxxx高清|