精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲一卡二卡| 97精品国产97久久久久久免费| 日韩欧美国产片| av网址在线播放| 成人av在线影院| 国产精品男人的天堂| 欧美成人精品欧美一级私黄| 天堂成人娱乐在线视频免费播放网站| 欧美日韩卡一卡二| 成人免费视频91| 色影院视频在线| av中文字幕在线不卡| 国产精品入口免费视| 久久久无码一区二区三区| 久久最新网址| 亚洲精品mp4| 日韩成人av免费| 极品av在线| 日韩美女精品在线| 久久综合九色99| 亚洲美女综合网| 蜜桃视频第一区免费观看| 国产做受69高潮| 日韩精品一区二区亚洲av性色| 五月天亚洲一区| 日韩精品一区二区三区中文不卡 | 欧美黄色免费| 欧美.www| 精品国产一区二区三区久久影院| 国产呦萝稀缺另类资源| 久久777国产线看观看精品| 中文字幕免费视频| 成人午夜网址| 麻豆精品99| 一卡二卡三卡日韩欧美| 一区不卡字幕| 高清性色生活片在线观看| 成人午夜av影视| 91在线|亚洲| 亚洲视频在线免费播放| 日韩高清电影一区| 日本国产高清不卡| 91在线视频在线观看| 亚洲福利精品| 国内精品久久久久久久久| 国产在线免费看| 久久亚洲国产| 自拍偷拍亚洲一区| 免费看裸体网站| 狠狠做六月爱婷婷综合aⅴ | 国产欧美精品久久久| 波多野结衣大片| 日韩高清一区二区| 国产精品扒开腿做爽爽爽男男| 四虎成人永久免费视频| 99热这里只有成人精品国产| 97精品伊人久久久大香线蕉 | 99久热re在线精品996热视频| 在线观看免费视频a| 日本美女视频一区二区| 国产精品久久久久久久av电影| 丰满少妇xoxoxo视频| 性高湖久久久久久久久| 欧美在线观看一区二区三区| 97久久久久久久| 亚洲一区视频| 国产97在线|亚洲| 综合久久中文字幕| 九色综合国产一区二区三区| 亚洲一区免费网站| www久久久com| 91伊人久久大香线蕉| 免费试看一区| 国产精品99999| 国产精品素人一区二区| 婷婷视频在线播放| 亚洲婷婷噜噜| 亚洲成av人片在线| 国产成人精品视频ⅴa片软件竹菊| 四虎成人在线| 欧美一区二区三区视频在线观看| 国产精品二区视频| 欧美美女黄色| 在线看欧美日韩| 国产97免费视频| 日韩视频一区| 国产精品中文字幕在线| 国产色视频在线| 97久久人人超碰| 亚洲午夜精品一区二区三区| 最新日本在线观看| 色综合天天狠狠| 天堂av8在线| 久久亚洲道色| 在线播放日韩欧美| 久久精品www| 日韩国产精品久久久| 91久久久在线| 视频一区二区三区在线看免费看 | 一区二区三区四区五区精品| 日韩特级毛片| 欧美专区亚洲专区| 午夜福利三级理论电影| 欧美偷拍自拍| 久久久久久久久91| 在线观看中文字幕码| 不卡在线视频中文字幕| 亚洲一区二区在线观| 99热99re6国产在线播放| 欧美在线啊v一区| 国产精品扒开腿做爽爽爽a片唱戏| 欧美三级美国一级| 亚州国产精品久久久| 国产乱码精品一区二区| 久久精品视频在线免费观看 | 天堂av在线一区| 99电影在线观看| 午夜毛片在线| 懂色av中文一区二区三区天美 | 国语对白永久免费| 精品一区二区三区免费| 欧美另类一区| mm视频在线视频| 日韩视频免费观看高清完整版| 亚洲精品午夜视频| 国产精品久久久久久模特| 91一区二区三区| 毛片网站在线免费观看| 在线亚洲一区二区| 亚洲国产欧美视频| 在线播放一区| 96成人在线视频| 看女生喷水的网站在线观看| 欧美视频中文字幕| wwwwxxxx国产| 亚洲免费播放| 成人做爰66片免费看网站| 巨大荫蒂视频欧美大片| 欧美日韩中字一区| 无码少妇一区二区| 欧美一级久久| 免费一区二区三区| 三妻四妾的电影电视剧在线观看| 精品久久久久久无| 免费一级片在线观看| 国产精品一级在线| 国产一级黄色录像片| 精品99re| 欧美国产在线视频| www.午夜激情| 性做久久久久久久免费看| 老熟女高潮一区二区三区| 国产精品第十页| 国产精品swag| 色老头在线一区二区三区| 亚洲精品国产精品久久清纯直播| 国产精品99无码一区二区| 高清av一区二区| 国产3p露脸普通话对白| 日本中文字幕在线一区| 日本91av在线播放| 丁香在线视频| 欧美精品日韩一本| 一区二区成人免费视频| 国产福利一区二区三区视频在线 | 中文在线免费视频| 中文字幕成人在线观看| 欧美一级欧美一级在线播放| 国产探花视频在线播放| 蜜臀久久99精品久久久久久9 | 亚洲综合网av| 成人欧美一区二区三区在线播放| 中文字幕乱妇无码av在线| 激情欧美日韩| 欧美日本国产精品| 国产成人精品一区二区三区视频| 俺去了亚洲欧美日韩| www.com欧美| 精品成人久久av| 免费黄色片网站| 国产一区视频在线看| 欧美日韩黄色一级片| 美国av一区二区三区| 在线视频 91| 亚洲欧洲另类国产综合| 日韩精品xxx| 亚洲在线观看| 一区二区精品国产| 国产精品chinese在线观看| 91成人福利在线| wwwxxx在线观看| 日韩视频在线一区二区| 日韩免费视频一区二区视频在线观看| 国产日韩亚洲欧美综合| 欧美体内she精高潮| 午夜在线精品偷拍| 最新不卡av| 亚洲欧美tv| 亚洲综合中文字幕68页| 成人影院大全| 欧美大成色www永久网站婷| 久草在线青青草| 91麻豆精品国产91久久久久久久久| 国产无遮挡又黄又爽在线观看| 亚洲国产激情av| 中文视频在线观看| 极品尤物av久久免费看| 日本在线视频www| 欧美日韩国产欧| 亚洲国产欧洲综合997久久| 亚洲小说春色综合另类电影| 国产精品最新在线观看| 蜜桃视频www网站在线观看| 久久久精品免费| 国产美女性感在线观看懂色av| 精品国精品国产| 一级黄色小视频| 在线中文字幕不卡| 国产性xxxx高清| 一区二区三区丝袜| 免费91在线观看| 久久精品视频一区二区三区| 在线观看成人动漫| 国产一区 二区 三区一级| 亚洲第一中文av| 久久精品官网| 欧美网站免费观看| 亚洲国产清纯| 欧洲精品在线播放| 午夜久久黄色| 肉大捧一出免费观看网站在线播放 | 亚洲欧美自偷自拍| 亚洲成人三级在线| 亚洲福利在线观看视频| 欧美丰满少妇xxxxx高潮对白| 亚洲午夜无码久久久久| 91九色02白丝porn| 99久久久久久久久| 一本一道久久a久久精品 | 18在线观看的| 久久久国产影院| bt在线麻豆视频| 操91在线视频| 中文字幕在线观看网站| 欧美成人免费全部| 四虎影视成人| 欧美二区在线播放| 国产蜜臀av在线播放| 欧美精品久久一区二区| 成全电影大全在线观看| 久久久久久久久综合| eeuss鲁一区二区三区| 午夜精品一区二区三区av| 17videosex性欧美| 欧美亚洲在线播放| 日韩欧美另类一区二区| 国产福利视频一区二区| 成人精品动漫| 成人在线精品视频| 视频一区日韩精品| 国产精品国产精品国产专区蜜臀ah | 激情久久中文字幕| 欧美激情精品久久久久久变态| 青青草手机视频在线观看| 中文字幕日韩欧美一区二区三区| 久久婷婷五月综合| 中文字幕日韩一区二区| 亚洲欧洲中文日韩久久av乱码| 青青草福利视频| 久久久久久**毛片大全| 麻豆精品免费视频| 久久国际精品| 51精品国产人成在线观看| 国产电影一区二区| 亚洲综合av影视| 高清精品xnxxcom| 久久久免费看| 成人久久综合| 老司机午夜网站| 99国产一区| 亚洲高清在线免费观看| 久久av中文字幕片| 国产高潮失禁喷水爽到抽搐| 久久亚洲综合色| 国产91在线播放九色| 亚洲激情第一区| 成人毛片在线播放| 91精品国产综合久久国产大片| 粉嫩av一区二区夜夜嗨| 亚洲人成亚洲人成在线观看| 日本天堂在线观看| 97精品视频在线| 亚洲日本中文| 久久99欧美| 综合五月婷婷| 99视频精品免费| 国产成人精品综合在线观看 | 日韩视频免费大全中文字幕| 羞羞网站在线看| 国产精品wwww| 精品精品国产三级a∨在线| 亚洲一区二区免费视频软件合集 | 国产一区丝袜| 亚洲自拍的二区三区| 国产视频久久| 1314成人网| 中文字幕二三区不卡| 日韩三级av在线| 欧美一区二区三区四区高清| 国产人成在线观看| 久久全国免费视频| 国产午夜久久av| 五月天久久综合网| 国产日韩专区| 国产一卡二卡三卡四卡| 亚洲三级在线看| 中文字幕久久网| 亚洲精品一区二区网址| 成人性生交大片免费看在线播放| 国产人妖伪娘一区91| 国产精品欧美在线观看| 久草视频国产在线| 国产成人三级在线观看| 91ts人妖另类精品系列| 在线日韩一区二区| 五月婷中文字幕| 97视频在线观看成人| 亚洲一区二区三区免费| 日韩视频 中文字幕| 激情综合色综合久久综合| 亚洲毛片亚洲毛片亚洲毛片| 色猫猫国产区一区二在线视频| 色一情一乱一区二区三区| 欧美黄色片视频| 我要色综合中文字幕| 免费观看中文字幕| 精品亚洲国内自在自线福利| 国产aaaaaaaaa| 欧美三级一区二区| av网站在线免费观看| 国产精品久久久久久久久免费 | 日本一区二区三区电影免费观看| 国产91av视频在线观看| 麻豆精品视频在线观看免费| 神马久久久久久久久久久| 欧美在线小视频| 天天在线视频色| 国产主播在线一区| 亚洲免费二区| 无码人妻久久一区二区三区蜜桃| 一区二区三区美女| 国产综合在线播放| 国内成人精品视频| 天堂一区二区三区四区| 日韩无套无码精品| 中文字幕二三区不卡| 国产欧美第一页| 欧美国产日韩在线| 欧美18免费视频| 日本成人中文字幕在线| 国产精品对白交换视频| 91精品国产乱码久久久| 欧美成年人在线观看| 风间由美一区二区av101| 欧美,日韩,国产在线| 国产亚洲人成网站| 在线观看中文字幕码| 欧美韩日一区二区| 美女精品一区最新中文字幕一区二区三区 | 免费在线看a| 亚洲自拍偷拍一区| 亚洲免费播放| 亚洲综合图片一区| 亚洲成av人影院在线观看| 欲香欲色天天天综合和网| 五月天色一区| 国产成人啪免费观看软件| 日本一区二区免费电影| 日韩中文理论片| 高清精品视频| 亚洲最大综合网| 亚洲精品国产成人久久av盗摄| 色窝窝无码一区二区三区| 国产精品日韩在线观看| 午夜激情一区| 少妇精品无码一区二区免费视频| 8x8x8国产精品| 日本不良网站在线观看| 天堂av免费看| 26uuu欧美| 国产成人a人亚洲精品无码| 69影院欧美专区视频| 99久久婷婷这里只有精品| 国模私拍在线观看| 欧美色大人视频| 成人影院在线视频| 精品久久免费观看| 久久精品无码一区二区三区| 精品国产亚洲一区二区麻豆| 日本在线精品视频|