日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二 面向对象三大特性

發(fā)布時(shí)間:2023/12/6 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二 面向对象三大特性 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

?

一 繼承與派生

  一、繼承定義

  二、繼承與抽象的關(guān)系

  三、繼承與重用性

  四、派生

  五、組合與重用性

  六、接口與歸一化設(shè)計(jì)

  七、抽象類

  八、繼承實(shí)現(xiàn)的原理

  九、子類中調(diào)用父類的方法

二 多態(tài)與多態(tài)性

  一、多態(tài)

  二、多態(tài)性

三 封裝

  一、封裝定義

  二、特性(property)

  三、封裝與擴(kuò)展性

?

一 繼承與派生

一、繼承定義

什么是繼承

繼承是一種創(chuàng)建新類的方式,新建的類可以繼承一個(gè)或多個(gè)父類(python支持多繼承),父類又可稱為基類或超類,新建的類稱為派生類或子類。

子類會(huì)“”遺傳”父類的屬性,從而解決代碼重用問題(比如練習(xí)7中Garen與Riven類有很多冗余的代碼)

python中類的繼承分為:單繼承和多繼承

?

1 class ParentClass1: #定義父類 2 pass 3 4 class ParentClass2: #定義父類 5 pass 6 7 class SubClass1(ParentClass1): #單繼承,基類是ParentClass1,派生類是SubClass 8 pass 9 10 class SubClass2(ParentClass1,ParentClass2): #python支持多繼承,用逗號(hào)分隔開多個(gè)繼承的類 11 pass

查看繼承

1 >>> SubClass1.__bases__ #__base__只查看從左到右繼承的第一個(gè)子類,__bases__則是查看所有繼承的父類 2 (<class '__main__.ParentClass1'>,) 3 >>> SubClass2.__bases__ 4 (<class '__main__.ParentClass1'>, <class '__main__.ParentClass2'>)

經(jīng)典類與新式類

1.只有在python2中才分新式類和經(jīng)典類,python3中統(tǒng)一都是新式類 2.在python2中,沒有顯式的繼承object類的類,以及該類的子類,都是經(jīng)典類 3.在python2中,顯式地聲明繼承object的類,以及該類的子類,都是新式類 3.在python3中,無論是否繼承object,都默認(rèn)繼承object,即python3中所有類均為新式類 #關(guān)于新式類與經(jīng)典類的區(qū)別,我們稍后討論

提示:如果沒有指定基類,python的類會(huì)默認(rèn)繼承object類,object是所有python類的基類,它提供了一些常見方法(如__str__)的實(shí)現(xiàn)。

1 >>> ParentClass1.__bases__ 2 (<class 'object'>,) 3 >>> ParentClass2.__bases__ 4 (<class 'object'>,)

?

二、繼承與抽象的關(guān)系

繼承描述的是子類與父類之間的關(guān)系,是一種什么是什么的關(guān)系。要找出這種關(guān)系,必須先抽象再繼承

抽象即抽取類似或者說比較像的部分。

繼承:是基于抽象的結(jié)果,通過編程語言去實(shí)現(xiàn)它,肯定是先經(jīng)歷抽象這個(gè)過程,才能通過繼承的方式去表達(dá)出抽象的結(jié)構(gòu)。

?

抽象只是分析和設(shè)計(jì)的過程中,一個(gè)動(dòng)作或者說一種技巧,通過抽象可以得到類

?

三、繼承與重用性

在開發(fā)程序的過程中,如果我們定義了一個(gè)類A,然后又想新建立另外一個(gè)類B,但是類B的大部分內(nèi)容與類A的相同時(shí)

我們不可能從頭開始寫一個(gè)類B,這就用到了類的繼承的概念。

通過繼承的方式新建類B,讓B繼承A,B會(huì)‘遺傳’A的所有屬性(數(shù)據(jù)屬性和函數(shù)屬性),實(shí)現(xiàn)代碼重用

1 class Hero: 2 def __init__(self,nickname,aggressivity,life_value): 3 self.nickname=nickname 4 self.aggressivity=aggressivity 5 self.life_value=life_value 6 7 def move_forward(self): 8 print('%s move forward' %self.nickname) 9 10 def move_backward(self): 11 print('%s move backward' %self.nickname) 12 13 def move_left(self): 14 print('%s move forward' %self.nickname) 15 16 def move_right(self): 17 print('%s move forward' %self.nickname) 18 19 def attack(self,enemy): 20 enemy.life_value-=self.aggressivity 21 class Garen(Hero): 22 pass 23 24 class Riven(Hero): 25 pass 26 27 g1=Garen('草叢倫',100,300) 28 r1=Riven('銳雯雯',57,200) 29 30 print(g1.life_value) 31 r1.attack(g1) 32 print(g1.life_value) 33 34 ''' 35 運(yùn)行結(jié)果 36 '''

提示:用已經(jīng)有的類建立一個(gè)新的類,這樣就重用了已經(jīng)有的軟件中的一部分設(shè)置大部分,大大生了編程工作量,這就是常說的軟件重用,不僅可以重用自己的類,也可以繼承別人的,比如標(biāo)準(zhǔn)庫,來定制新的數(shù)據(jù)類型,這樣就是大大縮短了軟件開發(fā)周期,對(duì)大型軟件開發(fā)來說,意義重大.

注意:像g1.life_value之類的屬性引用,會(huì)先從實(shí)例中找life_value然后去類中找,然后再去父類中找...直到最頂級(jí)的父類。

1 class Foo: 2 def f1(self): 3 print('Foo.f1') 4 5 def f2(self): 6 print('Foo.f2') 7 self.f1() 8 9 class Bar(Foo): 10 def f1(self): 11 print('Foo.f1') 12 13 14 b=Bar() 15 b.f2()

?

四、派生

當(dāng)然子類也可以添加自己新的屬性或者在自己這里重新定義這些屬性(不會(huì)影響到父類),需要注意的是,一旦重新定義了自己的屬性且與父類重名,那么調(diào)用新增的屬性時(shí),就以自己為準(zhǔn)了。

1 class Riven(Hero): 2 camp='Noxus' 3 def attack(self,enemy): #在自己這里定義新的attack,不再使用父類的attack,且不會(huì)影響父類 4 print('from riven') 5 def fly(self): #在自己這里定義新的 6 print('%s is flying' %self.nickname)

在子類中,新建的重名的函數(shù)屬性,在編輯函數(shù)內(nèi)功能的時(shí)候,有可能需要重用父類中重名的那個(gè)函數(shù)功能,應(yīng)該是用調(diào)用普通函數(shù)的方式,即:類名.func(),此時(shí)就與調(diào)用普通函數(shù)無異了,因此即便是self參數(shù)也要為其傳值

class Riven(Hero):camp='Noxus'def __init__(self,nickname,aggressivity,life_value,skin):Hero.__init__(self,nickname,aggressivity,life_value) #調(diào)用父類功能self.skin=skin #新屬性def attack(self,enemy): #在自己這里定義新的attack,不再使用父類的attack,且不會(huì)影響父類Hero.attack(self,enemy) #調(diào)用功能print('from riven')def fly(self): #在自己這里定義新的print('%s is flying' %self.nickname)r1=Riven('銳雯雯',57,200,'大衣') r1.fly() print(r1.skin)''' 運(yùn)行結(jié)果 銳雯雯 is flying 大衣'''

?

五、組合與重用性

軟件重用的重要方式除了繼承之外還有另外一種方式,即:組合

組合指的是,在一個(gè)類中以另外一個(gè)類的對(duì)象作為數(shù)據(jù)屬性,稱為類的組合

組合與繼承都是有效地利用已有類的資源的重要方式。但是二者的概念和使用場(chǎng)景皆不同,

1.繼承的方式

通過繼承建立了派生類與基類之間的關(guān)系,它是一種'是'的關(guān)系,比如白馬是馬,人是動(dòng)物。

當(dāng)類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好,比如老師是人,學(xué)生是人

2.組合的方式

用組合的方式建立了類與組合的類之間的關(guān)系,它是一種‘有’的關(guān)系,比如教授有生日,教授教python和linux課程,教授有學(xué)生s1、s2、s3...

1 class People: 2 def __init__(self,name,age,sex): 3 self.name=name 4 self.age=age 5 self.sex=sex 6 7 class Course: 8 def __init__(self,name,period,price): 9 self.name=name 10 self.period=period 11 self.price=price 12 def tell_info(self): 13 print('<%s %s %s>' %(self.name,self.period,self.price)) 14 15 class Teacher(People): 16 def __init__(self,name,age,sex,job_title): 17 People.__init__(self,name,age,sex) 18 self.job_title=job_title 19 self.course=[] 20 self.students=[] 21 22 23 class Student(People): 24 def __init__(self,name,age,sex): 25 People.__init__(self,name,age,sex) 26 self.course=[] 27 28 29 lucy=Teacher('lucy',56,'male','python講師') 30 s1=Student('anna',18,'female') 31 32 python=Course('python','3mons',3000.0) 33 linux=Course('python','3mons',3000.0) 34 35 #為老師egon和學(xué)生s1添加課程 36 lucy.course.append(python) 37 lucy.course.append(linux) 38 s1.course.append(python) 39 40 #為老師lucy添加學(xué)生s1 41 lucy.students.append(s1) 42 43 44 #使用 45 for obj in lucy.course: 46 obj.tell_info() 例子:繼承與組合

當(dāng)類之間有顯著不同,并且較小的類是較大的類所需要的組件時(shí),用組合比較好

?

六、接口與歸一化設(shè)計(jì)

1.什么是接口

?

1 =================第一部分:Java 語言中的接口很好的展現(xiàn)了接口的含義: IAnimal.java 2 /* 3 * Java的Interface接口的特征: 4 * 1)是一組功能的集合,而不是一個(gè)功能 5 * 2)接口的功能用于交互,所有的功能都是public,即別的對(duì)象可操作 6 * 3)接口只定義函數(shù),但不涉及函數(shù)實(shí)現(xiàn) 7 * 4)這些功能是相關(guān)的,都是動(dòng)物相關(guān)的功能,但光合作用就不適宜放到IAnimal里面了 */ 8 9 package com.oo.demo; 10 public interface IAnimal { 11 public void eat(); 12 public void run(); 13 public void sleep(); 14 public void speak(); 15 } 16 17 =================第二部分:Pig.java:豬”的類設(shè)計(jì),實(shí)現(xiàn)了IAnnimal接口 18 package com.oo.demo; 19 public class Pig implements IAnimal{ //如下每個(gè)函數(shù)都需要詳細(xì)實(shí)現(xiàn) 20 public void eat(){ 21 System.out.println("Pig like to eat grass"); 22 } 23 24 public void run(){ 25 System.out.println("Pig run: front legs, back legs"); 26 } 27 28 public void sleep(){ 29 System.out.println("Pig sleep 16 hours every day"); 30 } 31 32 public void speak(){ 33 System.out.println("Pig can not speak"); } 34 } 35 36 =================第三部分:Person2.java 37 /* 38 *實(shí)現(xiàn)了IAnimal的“人”,有幾點(diǎn)說明一下: 39 * 1)同樣都實(shí)現(xiàn)了IAnimal的接口,但“人”和“豬”的實(shí)現(xiàn)不一樣,為了避免太多代碼導(dǎo)致影響閱讀,這里的代碼簡化成一行,但輸出的內(nèi)容不一樣,實(shí)際項(xiàng)目中同一接口的同一功能點(diǎn),不同的類實(shí)現(xiàn)完全不一樣 40 * 2)這里同樣是“人”這個(gè)類,但和前面介紹類時(shí)給的類“Person”完全不一樣,這是因?yàn)橥瑯拥倪壿嫺拍?在不同的應(yīng)用場(chǎng)景下,具備的屬性和功能是完全不一樣的 */ 41 42 package com.oo.demo; 43 public class Person2 implements IAnimal { 44 public void eat(){ 45 System.out.println("Person like to eat meat"); 46 } 47 48 public void run(){ 49 System.out.println("Person run: left leg, right leg"); 50 } 51 52 public void sleep(){ 53 System.out.println("Person sleep 8 hours every dat"); 54 } 55 56 public void speak(){ 57 System.out.println("Hellow world, I am a person"); 58 } 59 } 60 61 =================第四部分:Tester03.java 62 package com.oo.demo; 63 64 public class Tester03 { 65 public static void main(String[] args) { 66 System.out.println("===This is a person==="); 67 IAnimal person = new Person2(); 68 person.eat(); 69 person.run(); 70 person.sleep(); 71 person.speak(); 72 73 System.out.println("\n===This is a pig==="); 74 IAnimal pig = new Pig(); 75 pig.eat(); 76 pig.run(); 77 pig.sleep(); 78 pig.speak(); 79 } 80 } java中的interface

2. 為何要用接口

接口提取了一群類共同的函數(shù),可以把接口當(dāng)做一個(gè)函數(shù)的集合。

然后讓子類去實(shí)現(xiàn)接口中的函數(shù)。

這么做的意義在于歸一化,什么叫歸一化,就是只要是基于同一個(gè)接口實(shí)現(xiàn)的類,那么所有的這些類產(chǎn)生的對(duì)象在使用時(shí),從用法上來說都一樣。

?

歸一化的好處在于:

1. 歸一化讓使用者無需關(guān)心對(duì)象的類是什么,只需要的知道這些對(duì)象都具備某些功能就可以了,這極大地降低了使用者的使用難度。

2. 歸一化使得高層的外部使用者可以不加區(qū)分的處理所有接口兼容的對(duì)象集合

2.1:就好象linux的泛文件概念一樣,所有東西都可以當(dāng)文件處理,不必關(guān)心它是內(nèi)存、磁盤、網(wǎng)絡(luò)還是屏幕(當(dāng)然,對(duì)底層設(shè)計(jì)者,當(dāng)然也可以區(qū)分出“字符設(shè)備”和“塊設(shè)備”,然后做出針對(duì)性的設(shè)計(jì):細(xì)致到什么程度,視需求而定)。

2.2:再比如:我們有一個(gè)汽車接口,里面定義了汽車所有的功能,然后由本田汽車的類,奧迪汽車的類,大眾汽車的類,他們都實(shí)現(xiàn)了汽車接口,這樣就好辦了,大家只需要學(xué)會(huì)了怎么開汽車,那么無論是本田,還是奧迪,還是大眾我們都會(huì)開了,開的時(shí)候根本無需關(guān)心我開的是哪一類車,操作手法(函數(shù)調(diào)用)都一樣

3. 模仿interface

在python中根本就沒有一個(gè)叫做interface的關(guān)鍵字,如果非要去模仿接口的概念

可以借助第三方模塊:

http://pypi.python.org/pypi/zope.interface

twisted的twisted\internet\interface.py里使用zope.interface

文檔https://zopeinterface.readthedocs.io/en/latest/

設(shè)計(jì)模式:https://github.com/faif/python-patterns

?

也可以使用繼承:?

繼承的兩種用途

一:繼承基類的方法,并且做出自己的改變或者擴(kuò)展(代碼重用):實(shí)踐中,繼承的這種用途意義并不很大,甚至常常是有害的。因?yàn)樗沟米宇惻c基類出現(xiàn)強(qiáng)耦合。

二:聲明某個(gè)子類兼容于某基類,定義一個(gè)接口類(模仿java的Interface),接口類中定義了一些接口名(就是函數(shù)名)且并未實(shí)現(xiàn)接口的功能,子類繼承接口類,并且實(shí)現(xiàn)接口中的功能

class Interface:#定義接口Interface類來模仿接口的概念,python中壓根就沒有interface關(guān)鍵字來定義一個(gè)接口。def read(self): #定接口函數(shù)readpassdef write(self): #定義接口函數(shù)writepassclass Txt(Interface): #文本,具體實(shí)現(xiàn)read和writedef read(self):print('文本數(shù)據(jù)的讀取方法')def write(self):print('文本數(shù)據(jù)的讀取方法')class Sata(Interface): #磁盤,具體實(shí)現(xiàn)read和writedef read(self):print('硬盤數(shù)據(jù)的讀取方法')def write(self):print('硬盤數(shù)據(jù)的讀取方法')class Process(Interface):def read(self):print('進(jìn)程數(shù)據(jù)的讀取方法')def write(self):print('進(jìn)程數(shù)據(jù)的讀取方法')

上面的代碼只是看起來像接口,其實(shí)并沒有起到接口的作用,子類完全可以不用去實(shí)現(xiàn)接口?,這就用到了抽象類

?

七、抽象類

1 什么是抽象類

? ? 與java一樣,python也有抽象類的概念但是同樣需要借助模塊實(shí)現(xiàn),抽象類是一個(gè)特殊的類,它的特殊之處在于只能被繼承,不能被實(shí)例化

2 為什么要有抽象類

??? 如果說類是從一堆對(duì)象中抽取相同的內(nèi)容而來的,那么抽象類是從一堆中抽取相同的內(nèi)容而來的,內(nèi)容包括數(shù)據(jù)屬性和函數(shù)屬性。

  比如我們有香蕉的類,有蘋果的類,有桃子的類,從這些類抽取相同的內(nèi)容就是水果這個(gè)抽象的類,你吃水果時(shí),要么是吃一個(gè)具體的香蕉,要么是吃一個(gè)具體的桃子。。。。。。你永遠(yuǎn)無法吃到一個(gè)叫做水果的東西。

? ? 從設(shè)計(jì)角度去看,如果類是從現(xiàn)實(shí)對(duì)象抽象而來的,那么抽象類就是基于類抽象而來的。

  從實(shí)現(xiàn)角度來看,抽象類與普通類的不同之處在于:抽象類中只能有抽象方法(沒有實(shí)現(xiàn)功能),該類不能被實(shí)例化,只能被繼承,且子類必須實(shí)現(xiàn)抽象方法。這一點(diǎn)與接口有點(diǎn)類似,但其實(shí)是不同的,即將揭曉答案

3. 在python中實(shí)現(xiàn)抽象類

1 #_*_coding:utf-8_*_ 2 __author__ = 'Linhaifeng' 3 #一切皆文件 4 import abc #利用abc模塊實(shí)現(xiàn)抽象類 5 6 class All_file(metaclass=abc.ABCMeta): 7 all_type='file' 8 @abc.abstractmethod #定義抽象方法,無需實(shí)現(xiàn)功能 9 def read(self): 10 '子類必須定義讀功能' 11 pass 12 13 @abc.abstractmethod #定義抽象方法,無需實(shí)現(xiàn)功能 14 def write(self): 15 '子類必須定義寫功能' 16 pass 17 18 # class Txt(All_file): 19 # pass 20 # 21 # t1=Txt() #報(bào)錯(cuò),子類沒有定義抽象方法 22 23 class Txt(All_file): #子類繼承抽象類,但是必須定義read和write方法 24 def read(self): 25 print('文本數(shù)據(jù)的讀取方法') 26 27 def write(self): 28 print('文本數(shù)據(jù)的讀取方法') 29 30 class Sata(All_file): #子類繼承抽象類,但是必須定義read和write方法 31 def read(self): 32 print('硬盤數(shù)據(jù)的讀取方法') 33 34 def write(self): 35 print('硬盤數(shù)據(jù)的讀取方法') 36 37 class Process(All_file): #子類繼承抽象類,但是必須定義read和write方法 38 def read(self): 39 print('進(jìn)程數(shù)據(jù)的讀取方法') 40 41 def write(self): 42 print('進(jìn)程數(shù)據(jù)的讀取方法') 43 44 wenbenwenjian=Txt() 45 46 yingpanwenjian=Sata() 47 48 jinchengwenjian=Process() 49 50 #這樣大家都是被歸一化了,也就是一切皆文件的思想 51 wenbenwenjian.read() 52 yingpanwenjian.write() 53 jinchengwenjian.read() 54 55 print(wenbenwenjian.all_type) 56 print(yingpanwenjian.all_type) 57 print(jinchengwenjian.all_type)

4. 抽象類與接口

抽象類的本質(zhì)還是類,指的是一組類的相似性,包括數(shù)據(jù)屬性(如all_type)和函數(shù)屬性(如read、write),而接口只強(qiáng)調(diào)函數(shù)屬性的相似性。

抽象類是一個(gè)介于類和接口直接的一個(gè)概念,同時(shí)具備類和接口的部分特性,可以用來實(shí)現(xiàn)歸一化設(shè)計(jì)?

?

八、繼承實(shí)現(xiàn)的原理

1 繼承順序

在Java和C#中子類只能繼承一個(gè)父類,而Python中子類可以同時(shí)繼承多個(gè)父類,如A(B,C,D)

如果繼承關(guān)系為非菱形結(jié)構(gòu),則會(huì)按照先找B這一條分支,然后再找C這一條分支,最后找D這一條分支的順序直到找到我們想要的屬性

如果繼承關(guān)系為菱形結(jié)構(gòu),那么屬性的查找方式有兩種,分別是:深度優(yōu)先和廣度優(yōu)先

1 class A(object): 2 def test(self): 3 print('from A') 4 5 class B(A): 6 def test(self): 7 print('from B') 8 9 class C(A): 10 def test(self): 11 print('from C') 12 13 class D(B): 14 def test(self): 15 print('from D') 16 17 class E(C): 18 def test(self): 19 print('from E') 20 21 class F(D,E): 22 # def test(self): 23 # print('from F') 24 pass 25 f1=F() 26 f1.test() 27 print(F.__mro__) #只有新式才有這個(gè)屬性可以查看線性列表,經(jīng)典類沒有這個(gè)屬性 28 29 #新式類繼承順序:F->D->B->E->C->A 30 #經(jīng)典類繼承順序:F->D->B->A->E->C 31 #python3中統(tǒng)一都是新式類 32 #pyhon2中才分新式類與經(jīng)典類

?

2 繼承原理(python如何實(shí)現(xiàn)的繼承)

python到底是如何實(shí)現(xiàn)繼承的,對(duì)于你定義的每一個(gè)類,python會(huì)計(jì)算出一個(gè)方法解析順序(MRO)列表,這個(gè)MRO列表就是一個(gè)簡單的所有基類的線性順序列表,例如

1 >>> F.mro() #等同于F.__mro__ 2 [<class '__main__.F'>, <class '__main__.D'>, <class '__main__.B'>, <class '__main__.E'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]

為了實(shí)現(xiàn)繼承,python會(huì)在MRO列表上從左到右開始查找基類,直到找到第一個(gè)匹配這個(gè)屬性的類為止。
而這個(gè)MRO列表的構(gòu)造是通過一個(gè)C3線性化算法來實(shí)現(xiàn)的。我們不去深究這個(gè)算法的數(shù)學(xué)原理,它實(shí)際上就是合并所有父類的MRO列表并遵循如下三條準(zhǔn)則:
1.子類會(huì)先于父類被檢查
2.多個(gè)父類會(huì)根據(jù)它們?cè)诹斜碇械捻樞虮粰z查
3.如果對(duì)下一個(gè)類存在兩個(gè)合法的選擇,選擇第一個(gè)父類

?

九、子類中調(diào)用父類的方法

方法一:指名道姓,即父類名.父類方法()

1 #_*_coding:utf-8_*_ 2 __author__ = 'Linhaifeng' 3 4 class Vehicle: #定義交通工具類 5 Country='China' 6 def __init__(self,name,speed,load,power): 7 self.name=name 8 self.speed=speed 9 self.load=load 10 self.power=power 11 12 def run(self): 13 print('開動(dòng)啦...') 14 15 class Subway(Vehicle): #地鐵 16 def __init__(self,name,speed,load,power,line): 17 Vehicle.__init__(self,name,speed,load,power) 18 self.line=line 19 20 def run(self): 21 print('地鐵%s號(hào)線歡迎您' %self.line) 22 Vehicle.run(self) 23 24 line13=Subway('中國地鐵','180m/s','1000人/箱','',13) 25 line13.run()

方法二:super()

1 class Vehicle: #定義交通工具類 2 Country='China' 3 def __init__(self,name,speed,load,power): 4 self.name=name 5 self.speed=speed 6 self.load=load 7 self.power=power 8 9 def run(self): 10 print('開動(dòng)啦...') 11 12 class Subway(Vehicle): #地鐵 13 def __init__(self,name,speed,load,power,line): 14 #super(Subway,self) 就相當(dāng)于實(shí)例本身 在python3中super()等同于super(Subway,self) 15 super().__init__(name,speed,load,power) 16 self.line=line 17 18 def run(self): 19 print('地鐵%s號(hào)線歡迎您' %self.line) 20 super(Subway,self).run() 21 22 class Mobike(Vehicle):#摩拜單車 23 pass 24 25 line13=Subway('中國地鐵','180m/s','1000人/箱','',13) 26 line13.run()

了解部分:

即使沒有直接繼承關(guān)系,super仍然會(huì)按照mro繼續(xù)往后查找

1 #A沒有繼承B,但是A內(nèi)super會(huì)基于C.mro()繼續(xù)往后找 2 class A: 3 def test(self): 4 super().test() 5 class B: 6 def test(self): 7 print('from B') 8 class C(A,B): 9 pass 10 11 c=C() 12 c.test() #打印結(jié)果:from B 13 14 15 print(C.mro()) 16 #[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>]

指名道姓與super()的區(qū)別

1 #指名道姓 2 class A: 3 def __init__(self): 4 print('A的構(gòu)造方法') 5 class B(A): 6 def __init__(self): 7 print('B的構(gòu)造方法') 8 A.__init__(self) 9 10 11 class C(A): 12 def __init__(self): 13 print('C的構(gòu)造方法') 14 A.__init__(self) 15 16 17 class D(B,C): 18 def __init__(self): 19 print('D的構(gòu)造方法') 20 B.__init__(self) 21 C.__init__(self) 22 23 pass 24 f1=D() #A.__init__被重復(fù)調(diào)用 25 ''' 26 D的構(gòu)造方法 27 B的構(gòu)造方法 28 A的構(gòu)造方法 29 C的構(gòu)造方法 30 A的構(gòu)造方法 31 ''' 32 33 34 #使用super() 35 class A: 36 def __init__(self): 37 print('A的構(gòu)造方法') 38 class B(A): 39 def __init__(self): 40 print('B的構(gòu)造方法') 41 super(B,self).__init__() 42 43 44 class C(A): 45 def __init__(self): 46 print('C的構(gòu)造方法') 47 super(C,self).__init__() 48 49 50 class D(B,C): 51 def __init__(self): 52 print('D的構(gòu)造方法') 53 super(D,self).__init__() 54 55 f1=D() #super()會(huì)基于mro列表,往后找 56 ''' 57 D的構(gòu)造方法 58 B的構(gòu)造方法 59 C的構(gòu)造方法 60 A的構(gòu)造方法 61 '''

當(dāng)你使用super()函數(shù)時(shí),Python會(huì)在MRO列表上繼續(xù)搜索下一個(gè)類。只要每個(gè)重定義的方法統(tǒng)一使用super()并只調(diào)用它一次,那么控制流最終會(huì)遍歷完整個(gè)MRO列表,每個(gè)方法也只會(huì)被調(diào)用一次(注意注意注意:使用super調(diào)用的所有屬性,都是從MRO列表當(dāng)前的位置往后找,千萬不要通過看代碼去找繼承關(guān)系,一定要看MRO列表

?

?

二 多態(tài)與多態(tài)性

一、多態(tài)

多態(tài)指的是一類事物有多種形態(tài)

動(dòng)物有多種形態(tài):人,狗,豬

1 import abc 2 class Animal(metaclass=abc.ABCMeta): #同一類事物:動(dòng)物 3 @abc.abstractmethod 4 def talk(self): 5 pass 6 7 class People(Animal): #動(dòng)物的形態(tài)之一:人 8 def talk(self): 9 print('say hello') 10 11 class Dog(Animal): #動(dòng)物的形態(tài)之二:狗 12 def talk(self): 13 print('say wangwang') 14 15 class Pig(Animal): #動(dòng)物的形態(tài)之三:豬 16 def talk(self): 17 print('say aoao')

文件有多種形態(tài):文本文件,可執(zhí)行文件

1 import abc 2 class File(metaclass=abc.ABCMeta): #同一類事物:文件 3 @abc.abstractmethod 4 def click(self): 5 pass 6 7 class Text(File): #文件的形態(tài)之一:文本文件 8 def click(self): 9 print('open file') 10 11 class ExeFile(File): #文件的形態(tài)之二:可執(zhí)行文件 12 def click(self): 13 print('execute file')

?

二、多態(tài)性

一 什么是多態(tài)動(dòng)態(tài)綁定(在繼承的背景下使用時(shí),有時(shí)也稱為多態(tài)性

態(tài)性是指在不考慮實(shí)例類型的情況下使用實(shí)例

?

多態(tài)性分為靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性

  靜態(tài)多態(tài)性:如任何類型都可以用運(yùn)算符+進(jìn)行運(yùn)算

  動(dòng)態(tài)多態(tài)性:如下

1 peo=People() 2 dog=Dog() 3 pig=Pig() 4 5 #peo、dog、pig都是動(dòng)物,只要是動(dòng)物肯定有talk方法 6 #于是我們可以不用考慮它們?nèi)叩木唧w是什么類型,而直接使用 7 peo.talk() 8 dog.talk() 9 pig.talk() 10 11 #更進(jìn)一步,我們可以定義一個(gè)統(tǒng)一的接口來使用 12 def func(obj): 13 obj.talk()

二 為什么要用多態(tài)性(多態(tài)性的好處)

其實(shí)大家從上面多態(tài)性的例子可以看出,我們并沒有增加什么新的知識(shí),也就是說python本身就是支持多態(tài)性的,這么做的好處是什么呢?

1.增加了程序的靈活性

  以不變應(yīng)萬變,不論對(duì)象千變?nèi)f化,使用者都是同一種形式去調(diào)用,如func(animal)

2.增加了程序額可擴(kuò)展性

  通過繼承animal類創(chuàng)建了一個(gè)新的類,使用者無需更改自己的代碼,還是用func(animal)去調(diào)用?

1 >>> class Cat(Animal): #屬于動(dòng)物的另外一種形態(tài):貓 2 ... def talk(self): 3 ... print('say miao') 4 ... 5 >>> def func(animal): #對(duì)于使用者來說,自己的代碼根本無需改動(dòng) 6 ... animal.talk() 7 ... 8 >>> cat1=Cat() #實(shí)例出一只貓 9 >>> func(cat1) #甚至連調(diào)用方式也無需改變,就能調(diào)用貓的talk功能 10 say miao 11 12 ''' 13 這樣我們新增了一個(gè)形態(tài)Cat,由Cat類產(chǎn)生的實(shí)例cat1,使用者可以在完全不需要修改自己代碼的情況下。使用和人、狗、豬一樣的方式調(diào)用cat1的talk方法,即func(cat1) 14 '''

三 ?鴨子類型

python程序員通常根據(jù)這種行為來編寫程序。例如,如果想編寫現(xiàn)有對(duì)象的自定義版本,可以繼承該對(duì)象

也可以創(chuàng)建一個(gè)外觀和行為像,但與它無任何關(guān)系的全新對(duì)象,后者通常用于保存程序組件的松耦合度。

例1:利用標(biāo)準(zhǔn)庫中定義的各種‘與文件類似’的對(duì)象,盡管這些對(duì)象的工作方式像文件,但他們沒有繼承內(nèi)置文件對(duì)象的方法

1 #二者都像鴨子,二者看起來都像文件,因而就可以當(dāng)文件一樣去用 2 class TxtFile: 3 def read(self): 4 pass 5 6 def write(self): 7 pass 8 9 class DiskFile: 10 def read(self): 11 pass 12 def write(self): 13 pass

例2:其實(shí)大家一直在享受著多態(tài)性帶來的好處,比如Python的序列類型有多種形態(tài):字符串,列表,元組,多態(tài)性體現(xiàn)如下

1 #str,list,tuple都是序列類型 2 s=str('hello') 3 l=list([1,2,3]) 4 t=tuple((4,5,6)) 5 6 #我們可以在不考慮三者類型的前提下使用s,l,t 7 s.__len__() 8 l.__len__() 9 t.__len__() 10 11 len(s) 12 len(l) 13 len(t)

?

三 封裝

一、封裝定義

1. 引子

從封裝本身的意思去理解,封裝就好像是拿來一個(gè)麻袋,把小貓,小狗,小王八,還有alex一起裝進(jìn)麻袋,然后把麻袋封上口子。照這種邏輯看,封裝=‘隱藏’,這種理解是相當(dāng)片面的

2. 先看如何隱藏

在python中用雙下劃線開頭的方式將屬性隱藏起來(設(shè)置成私有的)

1 #其實(shí)這僅僅這是一種變形操作且僅僅只在類定義階段發(fā)生變形 2 #類中所有雙下劃線開頭的名稱如__x都會(huì)在類定義時(shí)自動(dòng)變形成:_類名__x的形式: 3 4 class A: 5 __N=0 #類的數(shù)據(jù)屬性就應(yīng)該是共享的,但是語法上是可以把類的數(shù)據(jù)屬性設(shè)置成私有的如__N,會(huì)變形為_A__N 6 def __init__(self): 7 self.__X=10 #變形為self._A__X 8 def __foo(self): #變形為_A__foo 9 print('from A') 10 def bar(self): 11 self.__foo() #只有在類內(nèi)部才可以通過__foo的形式訪問到. 12 13 #A._A__N是可以訪問到的, 14 #這種,在外部是無法通過__x這個(gè)名字訪問到。

這種變形需要注意的問題是:

1.這種機(jī)制也并沒有真正意義上限制我們從外部直接訪問屬性,知道了類名和屬性名就可以拼出名字:_類名__屬性,然后就可以訪問了,如a._A__N,即這種操作并不是嚴(yán)格意義上的限制外部訪問,僅僅只是一種語法意義上的變形,主要用來限制外部的直接訪問。

2.變形的過程只在類的定義時(shí)發(fā)生一次,在定義后的賦值操作,不會(huì)變形

3.在繼承中,父類如果不想讓子類覆蓋自己的方法,可以將方法定義為私有的

1 #正常情況 2 >>> class A: 3 ... def fa(self): 4 ... print('from A') 5 ... def test(self): 6 ... self.fa() 7 ... 8 >>> class B(A): 9 ... def fa(self): 10 ... print('from B') 11 ... 12 >>> b=B() 13 >>> b.test() 14 from B 15 16 17 #把fa定義成私有的,即__fa 18 >>> class A: 19 ... def __fa(self): #在定義時(shí)就變形為_A__fa 20 ... print('from A') 21 ... def test(self): 22 ... self.__fa() #只會(huì)與自己所在的類為準(zhǔn),即調(diào)用_A__fa 23 ... 24 >>> class B(A): 25 ... def __fa(self): 26 ... print('from B') 27 ... 28 >>> b=B() 29 >>> b.test() 30 from A

3.?封裝不是單純意義的隱藏

1)封裝數(shù)據(jù):將數(shù)據(jù)隱藏起來這不是目的。隱藏起來然后對(duì)外提供操作該數(shù)據(jù)的接口,然后我們可以在接口附加上對(duì)該數(shù)據(jù)操作的限制,以此完成對(duì)數(shù)據(jù)屬性操作的嚴(yán)格控制。

1 class Teacher: 2 def __init__(self,name,age): 3 # self.__name=name 4 # self.__age=age 5 self.set_info(name,age) 6 7 def tell_info(self): 8 print('姓名:%s,年齡:%s' %(self.__name,self.__age)) 9 def set_info(self,name,age): 10 if not isinstance(name,str): 11 raise TypeError('姓名必須是字符串類型') 12 if not isinstance(age,int): 13 raise TypeError('年齡必須是整型') 14 self.__name=name 15 self.__age=age 16 17 18 t=Teacher('lucy',18) 19 t.tell_info() 20 21 t.set_info('lucy',19) 22 t.tell_info()

2) 封裝方法:目的是隔離復(fù)雜度

封裝方法舉例:?

1. 你的身體沒有一處不體現(xiàn)著封裝的概念:你的身體把膀胱尿道等等這些尿的功能隱藏了起來,然后為你提供一個(gè)尿的接口就可以了(接口就是你的。。。,),你總不能把膀胱掛在身體外面,上廁所的時(shí)候就跟別人炫耀:hi,man,你瞅我的膀胱,看看我是怎么尿的。

2. 電視機(jī)本身是一個(gè)黑盒子,隱藏了所有細(xì)節(jié),但是一定會(huì)對(duì)外提供了一堆按鈕,這些按鈕也正是接口的概念,所以說,封裝并不是單純意義的隱藏!!!

3.?快門就是傻瓜相機(jī)為傻瓜們提供的方法,該方法將內(nèi)部復(fù)雜的照相功能都隱藏起來了

提示:在編程語言里,對(duì)外提供的接口(接口可理解為了一個(gè)入口),可以是函數(shù),稱為接口函數(shù),這與接口的概念還不一樣,接口代表一組接口函數(shù)的集合體。

1 #取款是功能,而這個(gè)功能有很多功能組成:插卡、密碼認(rèn)證、輸入金額、打印賬單、取錢 2 #對(duì)使用者來說,只需要知道取款這個(gè)功能即可,其余功能我們都可以隱藏起來,很明顯這么做 3 #隔離了復(fù)雜度,同時(shí)也提升了安全性 4 5 class ATM: 6 def __card(self): 7 print('插卡') 8 def __auth(self): 9 print('用戶認(rèn)證') 10 def __input(self): 11 print('輸入取款金額') 12 def __print_bill(self): 13 print('打印賬單') 14 def __take_money(self): 15 print('取款') 16 17 def withdraw(self): 18 self.__card() 19 self.__auth() 20 self.__input() 21 self.__print_bill() 22 self.__take_money() 23 24 a=ATM() 25 a.withdraw() 隔離復(fù)雜度的例子

3) 了解

python并不會(huì)真的阻止你訪問私有的屬性,模塊也遵循這種約定,如果模塊名以單下劃線開頭,那么from module import *時(shí)不能被導(dǎo)入,但是你from module import _private_module依然是可以導(dǎo)入的

其實(shí)很多時(shí)候你去調(diào)用一個(gè)模塊的功能時(shí)會(huì)遇到單下劃線開頭的(socket._socket,sys._home,sys._clear_type_cache),這些都是私有的,原則上是供內(nèi)部調(diào)用的,作為外部的你,一意孤行也是可以用的,只不過顯得稍微傻逼一點(diǎn)點(diǎn)

python要想與其他編程語言一樣,嚴(yán)格控制屬性的訪問權(quán)限,只能借助內(nèi)置方法如__getattr__

?

二、 特性(property)?

什么是特性property

property是一種特殊的屬性,訪問它時(shí)會(huì)執(zhí)行一段功能(函數(shù))然后返回值

例一:BMI指數(shù)(bmi是計(jì)算而來的,但很明顯它聽起來像是一個(gè)屬性而非方法,如果我們將其做成一個(gè)屬性,更便于理解)

成人的BMI數(shù)值: 過輕:低于18.5 正常:18.5-23.9 過重:24-27 肥胖:28-32 非常肥胖, 高于32 體質(zhì)指數(shù)(BMI)=體重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86 1 class People: 2 def __init__(self,name,weight,height): 3 self.name=name 4 self.weight=weight 5 self.height=height 6 @property 7 def bmi(self): 8 return self.weight / (self.height**2) 9 10 p1=People('lucy',45,1.65) 11 print(p1.bmi)

為什么要用property

將一個(gè)類的函數(shù)定義成特性以后,對(duì)象再去使用的時(shí)候obj.name,根本無法察覺自己的name是執(zhí)行了一個(gè)函數(shù)然后計(jì)算出來的,這種特性的使用方式遵循了統(tǒng)一訪問的原則

除此之外,看下

1 ps:面向?qū)ο蟮姆庋b有三種方式: 2 【public】 3 這種其實(shí)就是不封裝,是對(duì)外公開的 4 【protected】 5 這種封裝方式對(duì)外不公開,但對(duì)朋友(friend)或者子類(形象的說法是“兒子”,但我不知道為什么大家 不說“女兒”,就像“parent”本來是“父母”的意思,但中文都是叫“父類”)公開 6 【private】 7 這種封裝對(duì)誰都不公開

python并沒有在語法上把它們?nèi)齻€(gè)內(nèi)建到自己的class機(jī)制中,在C++里一般會(huì)將所有的所有的數(shù)據(jù)都設(shè)置為私有的,然后提供set和get方法(接口)去設(shè)置和獲取,在python中通過property方法可以實(shí)現(xiàn)

1 class Foo: 2 def __init__(self,val): 3 self.__NAME=val #將所有的數(shù)據(jù)屬性都隱藏起來 4 5 @property 6 def name(self): 7 return self.__NAME #obj.name訪問的是self.__NAME(這也是真實(shí)值的存放位置) 8 9 @name.setter 10 def name(self,value): 11 if not isinstance(value,str): #在設(shè)定值之前進(jìn)行類型檢查 12 raise TypeError('%s must be str' %value) 13 self.__NAME=value #通過類型檢查后,將值value存放到真實(shí)的位置self.__NAME 14 15 @name.deleter 16 def name(self): 17 raise TypeError('Can not delete') 18 19 f=Foo('egon') 20 print(f.name) 21 # f.name=10 #拋出異常'TypeError: 10 must be str' 22 del f.name #拋出異常'TypeError: Can not delete' 1 class Foo: 2 def __init__(self,val): 3 self.__NAME=val #將所有的數(shù)據(jù)屬性都隱藏起來 4 5 def getname(self): 6 return self.__NAME #obj.name訪問的是self.__NAME(這也是真實(shí)值的存放位置) 7 8 def setname(self,value): 9 if not isinstance(value,str): #在設(shè)定值之前進(jìn)行類型檢查 10 raise TypeError('%s must be str' %value) 11 self.__NAME=value #通過類型檢查后,將值value存放到真實(shí)的位置self.__NAME 12 13 def delname(self): 14 raise TypeError('Can not delete') 15 16 name=property(getname,setname,delname) #不如裝飾器的方式清晰

?

三、封裝與擴(kuò)展性

封裝在于明確區(qū)分內(nèi)外,使得類實(shí)現(xiàn)者可以修改封裝內(nèi)的東西而不影響外部調(diào)用者的代碼;而外部使用用者只知道一個(gè)接口(函數(shù)),只要接口(函數(shù))名、參數(shù)不變,使用者的代碼永遠(yuǎn)無需改變。這就提供一個(gè)良好的合作基礎(chǔ)——或者說,只要接口這個(gè)基礎(chǔ)約定不變,則代碼改變不足為慮。

1 #類的設(shè)計(jì)者 2 class Room: 3 def __init__(self,name,owner,width,length,high): 4 self.name=name 5 self.owner=owner 6 self.__width=width 7 self.__length=length 8 self.__high=high 9 def tell_area(self): #對(duì)外提供的接口,隱藏了內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),此時(shí)我們想求的是面積 10 return self.__width * self.__length 11 12 13 #使用者 14 >>> r1=Room('臥室','egon',20,20,20) 15 >>> r1.tell_area() #使用者調(diào)用接口tell_area 16 17 18 #類的設(shè)計(jì)者,輕松的擴(kuò)展了功能,而類的使用者完全不需要改變自己的代碼 19 class Room: 20 def __init__(self,name,owner,width,length,high): 21 self.name=name 22 self.owner=owner 23 self.__width=width 24 self.__length=length 25 self.__high=high 26 def tell_area(self): #對(duì)外提供的接口,隱藏內(nèi)部實(shí)現(xiàn),此時(shí)我們想求的是體積,內(nèi)部邏輯變了,只需求修該下列一行就可以很簡答的實(shí)現(xiàn),而且外部調(diào)用感知不到,仍然使用該方法,但是功能已經(jīng)變了 27 return self.__width * self.__length * self.__high 28 29 30 #對(duì)于仍然在使用tell_area接口的人來說,根本無需改動(dòng)自己的代碼,就可以用上新功能 31 >>> r1.tell_area()

?

轉(zhuǎn)載于:https://www.cnblogs.com/eric_yi/p/8451338.html

總結(jié)

以上是生活随笔為你收集整理的二 面向对象三大特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

丁香综合网 | 91九色免费视频 | 麻豆影视在线播放 | 亚洲一级黄色 | 欧美一区免费观看 | 午夜电影av | 婷婷成人综合 | 91在线播放综合 | 国产无区一区二区三麻豆 | 在线视频 91 | 亚洲精品在线观看中文字幕 | 国产精品久久久精品 | 国产成人精品一区二区在线观看 | 色婷婷国产精品 | 成人国产一区二区 | 国产精品激情 | 国产无套精品久久久久久 | 在线观看中文字幕av | 国产一区二区在线免费观看 | 成 人 黄 色 免费播放 | 中文伊人 | 97精品电影院| 国产精品久久久久婷婷二区次 | 日韩精品一区电影 | av在线免费播放 | 精品福利在线 | 亚洲一级片 | 亚洲国产精品99久久久久久久久 | 丁香花在线视频观看免费 | 天天弄天天操 | 国产成人精品午夜在线播放 | 中文字幕在线观看免费高清电影 | 中文字幕黄网 | 又长又大又黑又粗欧美 | 色中色综合 | 在线国产激情视频 | 91看片淫黄大片一级在线观看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 成年人看片网站 | 综合久久综合久久 | 日本精品一区二区三区在线观看 | 亚洲精品国偷自产在线91正片 | 国产精品永久久久久久久久久 | 国产精品一区二区白浆 | 久久国产影院 | 久久综合网色—综合色88 | 国产精品毛片网 | 国产成人精品一区二 | 97超碰中文字幕 | 国产精品自产拍在线观看 | 日韩国产精品久久久久久亚洲 | 麻豆国产精品va在线观看不卡 | 91成人精品一区在线播放69 | 国产成人精品一区二区在线 | 国产激情免费 | 欧美日韩大片在线观看 | 手机看片 | 国产精品毛片一区二区在线 | 日本中文字幕网址 | 国产伦精品一区二区三区高清 | 在线观看黄色国产 | 日本三级中文字幕在线观看 | 欧美 亚洲 另类 激情 另类 | 久久久噜噜噜久久久 | 99se视频在线观看 | 日日干视频 | 色综合综合 | 亚洲区视频在线观看 | 黄色毛片在线 | 色网免费观看 | 日本一区二区三区视频在线播放 | 精精国产xxxx视频在线播放 | 国产精品美女久久久久久久久久久 | 伊人婷婷色 | 97精品视频在线 | 黄色网址中文字幕 | 深爱婷婷激情 | 久草热久草视频 | 久久久国产精品一区二区中文 | 99久久精品免费看国产四区 | 狠狠干天天干 | 天天操天天曰 | 西西444www | 不卡视频一区二区三区 | 久草在线视频国产 | 国产一区二区高清 | 精品国产乱码久久久久久天美 | 国产亚洲精品久久19p | 日韩免费播放 | 欧美精品三级在线观看 | 欧美最猛性xxx | 国产成人精品网站 | 四虎在线永久免费观看 | 最新国产精品久久精品 | 亚洲第一成网站 | 日韩中文字幕免费视频 | 91精品久久久久久久久久久久久 | 在线精品观看国产 | 久久99国产精品免费网站 | 天堂中文在线视频 | 色婷久久 | 伊人精品在线 | 午夜手机电影 | 中文字幕久久精品亚洲乱码 | 成人一区二区三区在线观看 | 在线亚洲人成电影网站色www | 国产一级免费电影 | 国产又粗又猛又色又黄网站 | 日本精品视频一区 | 91麻豆精品91久久久久同性 | 欧美视屏一区二区 | 综合亚洲视频 | 中文字幕在线观看免费观看 | 久久人人爽爽人人爽人人片av | 久久不卡国产精品一区二区 | 91高清免费 | 欧美久久久久久久 | 最新日韩在线观看视频 | 国产资源免费 | 久久久国产精品成人免费 | 黄色大片中国 | 麻豆av一区二区三区在线观看 | 国产三级精品三级在线观看 | 精品亚洲欧美一区 | 亚洲精品国精品久久99热 | 色天天久久 | 中文在线免费看视频 | 在线观看精品 | 爱情影院aqdy鲁丝片二区 | 天天曰 | 精品亚洲免费 | 国产一区二区免费在线观看 | 一区 二区 精品 | 欧美日韩亚洲第一页 | 亚洲精品网站 | 日韩网站免费观看 | 99理论片 | 婷婷丁香六月天 | 深爱五月激情五月 | 99视频国产精品免费观看 | 五月婷激情 | 日本性xxxxx| 精品人人人 | 欧美极品在线播放 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 美女国产精品 | 91久久久久久国产精品 | 日韩精品高清不卡 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产美腿白丝袜足在线av | 免费日韩 精品中文字幕视频在线 | 日韩在线国产精品 | 亚洲毛片一区二区三区 | 亚洲v精品 | 亚洲精品在线国产 | 久久久精品欧美一区二区免费 | 欧美激情综合五月色丁香 | 精品视频免费 | 中文字幕在线观看第三页 | 免费人成网 | 亚洲天堂网在线视频观看 | 亚洲国产999 | 亚洲尺码电影av久久 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 91天天操 | 四虎在线永久免费观看 | 911香蕉视频 | 午夜狠狠干 | 婷婷色婷婷 | 日韩a在线观看 | 黄色福利视频网站 | 成人免费91 | 亚洲精品午夜久久久久久久 | 日日夜夜天天人人 | 午夜婷婷在线播放 | 久久久精品视频网站 | 欧美日韩高清在线 | 天天综合久久综合 | 亚洲区视频在线 | 久久久综合九色合综国产精品 | 欧美精品久久久久久久久久白贞 | 成年人黄色大全 | 一本色道久久综合亚洲二区三区 | 中文字幕av一区二区三区四区 | 不卡电影一区二区三区 | 97天堂 | 国产综合激情 | 久久艹精品 | 亚洲乱码精品久久久 | 中文在线资源 | 国内精品二区 | 在线观看免费国产小视频 | 日日日日| 手机成人在线 | japanesexxxhd奶水 91在线精品一区二区 | 99久久精品久久久久久动态片 | 久久狠狠一本精品综合网 | 天天爽天天搞 | 五月天综合色激情 | 天天综合区 | 欧美日韩久久一区 | 久久久久久久久电影 | 91在线视频在线 | 欧美一级专区免费大片 | 久久艹国产 | 国产一级免费播放 | 精品久久99 | 国产在线91在线电影 | 欧美日韩69 | 国产精品99久久久久久久久久久久 | 在线视频第一页 | 国产一级视频在线免费观看 | 成年人免费看片网站 | 国产精品久久毛片 | 在线看片一区 | 亚洲欧美经典 | 日韩精品一区二区三区免费观看视频 | 97免费在线观看视频 | 一区二区三区播放 | 最新日韩精品 | 日韩精品中文字幕在线观看 | 青草视频在线 | 欧美精品亚洲精品日韩精品 | 97视频在线免费播放 | 亚洲高清免费在线 | 久久高清 | 精品久久久久久亚洲综合网站 | 9999精品视频 | 在线亚洲精品 | 国产小视频在线 | 久久久精品综合 | 国产成人久久av | 欧洲高潮三级做爰 | 一级黄色大片 | 精品福利在线 | 欧美网址在线观看 | 亚洲综合色丁香婷婷六月图片 | 激情电影影院 | 亚洲欧美国内爽妇网 | 69久久99精品久久久久婷婷 | 黄色免费大片 | 奇米导航| 久久dvd | 久久久免费国产 | 日日夜夜草 | 久久毛片高清国产 | 日韩一区在线免费观看 | 免费男女羞羞的视频网站中文字幕 | 国产一级特黄毛片在线毛片 | 色91av | 麻豆一区二区三区视频 | 亚洲狠狠婷婷 | 91在线小视频 | 日韩精品一区二区三区免费观看视频 | 国产99久久久国产精品免费二区 | 国产女人40精品一区毛片视频 | 丁香婷婷综合激情 | 91探花系列在线播放 | 久久久免费高清视频 | 在线观看亚洲 | 欧美少妇xxx | 国产精品一区二区久久 | 国产一区二区三区午夜 | 2021国产视频 | 成人三级av | 久久精品视频在线观看免费 | 成人全视频免费观看在线看 | 日韩欧美xxx | 啪啪肉肉污av国网站 | 亚洲传媒在线 | 91xav| 久久精品79国产精品 | 国产黄| 亚洲激情 | 色综合网在线 | 四虎影视成人永久免费观看亚洲欧美 | 中文字幕在线观看免费高清完整版 | 国产精品videossex国产高清 | 免费视频久久久久 | 中文字幕乱码亚洲精品一区 | 成人黄性视频 | 制服丝袜天堂 | 久久只精品99品免费久23小说 | 国产久草在线 | 久久久精品国产免费观看一区二区 | 国产视频资源在线观看 | 91精品久久久久 | 干干夜夜 | 91精品久久久久久 | 国产黄色看片 | 色在线网 | 最新av网址在线 | 欧美色图狠狠干 | av电影免费在线看 | 午夜精品一区二区三区视频免费看 | 国产精品日韩久久久久 | 国外调教视频网站 | 久久99中文字幕 | 午夜精品一区二区三区在线视频 | 久久久资源| 欧美精品久久久久久久 | 国产专区欧美专区 | 九九久| 免费观看第二部31集 | 色婷婷啪啪免费在线电影观看 | 久久视频网 | 91亚洲欧美| 欧美性高跟鞋xxxxhd | 中文字幕日韩无 | 亚洲婷婷伊人 | 午夜狠狠干 | 人九九精品| 国产做爰视频 | 欧美一级日韩三级 | 91女人18片女毛片60分钟 | 久草观看视频 | 伊人小视频 | 成人理论在线观看 | 欧美日韩中字 | 国产亚洲在线视频 | 欧美va日韩va | 中文字幕视频一区 | www日韩精品 | 国内精品在线观看视频 | 91爱爱免费观看 | 久久久久麻豆v国产 | 免费视频一区二区 | 欧美激情视频久久 | 亚洲精品www. | 国产91学生| 国产伦理剧 | 日日天天 | 在线观看av大片 | 波多野结衣视频一区二区 | www.97色.com | 不卡电影一区二区三区 | a级国产乱理论片在线观看 特级毛片在线观看 | 91免费版在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 97超碰人人澡 | 99操视频 | 九九亚洲视频 | 91视频久久久 | 伊人www22综合色 | 福利在线看片 | 婷婷色狠狠| 一级久久精品 | 国产精品岛国久久久久久久久红粉 | 成人中文字幕+乱码+中文字幕 | 五月激情丁香婷婷 | 久久这里只精品 | 亚洲精品久 | 又黄又刺激 | 伊人黄色网 | 伊人天天狠天天添日日拍 | 欧美 日韩 成人 | 99re热精品视频 | 在线免费观看麻豆视频 | 日日夜av| 久久久精品免费观看 | 亚洲少妇久久 | 黄色网址中文字幕 | 9999精品视频| 午夜视频在线观看一区 | 韩国精品福利一区二区三区 | 亚洲成人影音 | 久久久久福利视频 | 久久国产精品视频观看 | 69成人在线 | 久久久久久久国产精品 | 色综合天天综合网国产成人网 | 欧美另类色图 | 久久成人毛片 | 日韩精品一区二区三区第95 | 日日碰狠狠添天天爽超碰97久久 | 日本午夜在线亚洲.国产 | 国产精品久久久久亚洲影视 | 国产精品女人久久久 | 中文在线www | 久久精品99久久 | 天天干天天操人体 | 在线黄色av电影 | 国产精品精品久久久 | a久久久久久 | 521色香蕉网站在线观看 | 91激情在线视频 | 国产精品99蜜臀久久不卡二区 | 免费网站看v片在线a | 亚洲 欧美日韩 国产 中文 | 亚洲欧美日韩在线看 | 欧美少妇18p| 国产精品视频全国免费观看 | 99久久精品国产亚洲 | 亚洲精品99 | 亚洲天堂网站视频 | 日本成址在线观看 | 欧美黑吊大战白妞欧美 | 国产日韩欧美在线影视 | 国产亚洲一区二区三区 | 久久视频免费在线观看 | av电影一区二区三区 | 久久精品久久99精品久久 | 国产精品久久久久久久久久久久午 | 四虎在线视频 | 久久在线观看视频 | 欧美日韩免费看 | 99热99热 | 精品a视频 | 日韩网站在线观看 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 最新av网址在线观看 | 高清不卡免费视频 | 六月色播 | 日韩免费在线播放 | 五月天综合网站 | 99久久爱| 特级西西444www大胆高清无视频 | 日日日干 | 91视频xxxx| 久久精品影片 | 欧美91成人网| 在线99 | 精品久久久久久电影 | 久久精品一二三区白丝高潮 | 国产精品免费麻豆入口 | 国产福利免费看 | 五月天六月丁香 | 日韩av黄| 久久精品视频免费 | 精品久久久久久久久亚洲 | 精品国产诱惑 | 日韩精品一区电影 | 在线国产日本 | 久久国产精品区 | 国产伦理剧| 免费看一级片 | 国产精品入口麻豆 | 婷婷五综合 | 91av资源网 | 成人一区在线观看 | 久久国产精品99久久久久 | 91高清在线 | 天天干人人干 | 丁香六月婷婷 | 日韩精品中文字幕在线不卡尤物 | 国产高清日韩欧美 | 欧美一级特黄aaaaaa大片在线观看 | 久久影院一区 | 草久在线播放 | 欧美性受极品xxxx喷水 | 97超碰在线资源 | 日韩欧美亚州 | 91视频免费观看 | 97在线观看免费高清完整版在线观看 | 日本精品视频在线 | 特级黄色视频毛片 | japanesefreesexvideo高潮 | 亚洲aⅴ免费在线观看 | 一区二区理论片 | 久久美女视频 | 午夜a区 | 日韩av免费一区二区 | 国产大陆亚洲精品国产 | 六月激情丁香 | 国际精品久久久久 | 欧美日韩精品在线播放 | 国产精品不卡视频 | 久热这里有精品 | bbbbb女女女女女bbbbb国产 | 免费久久久久久 | 美女黄濒| 999亚洲国产996395 | 国产高清福利在线 | av在线收看 | 99精品国产兔费观看久久99 | 亚洲特级毛片 | 婷婷伊人综合亚洲综合网 | 国内精品久久久久久 | 中文字幕成人网 | 国产1区2区3区精品美女 | 伊香蕉大综综综合久久啪 | 国产视频一区精品 | 啪啪精品 | 国产精品免费视频一区二区 | 久久久人人爽 | 天天色棕合合合合合合 | 久久国产欧美日韩精品 | 天天操天天操天天操天天操天天操天天操 | 人人爽人人插 | 九色91福利| av中文字幕在线播放 | 成人毛片一区二区三区 | 亚洲天堂网视频 | 亚洲精品久久久蜜桃直播 | 日本精品一区二区在线观看 | 国产又粗又猛又黄又爽视频 | 国产一区二区不卡视频 | 99r在线播放 | 国产精品激情在线观看 | 中文字幕亚洲国产 | 天天色天天射天天操 | 国产精品在线看 | 天天色婷婷 | 久操中文字幕在线观看 | 欧美精品一区二区性色 | 欧美日韩在线观看一区二区 | 国产一级在线观看视频 | 国产精品女主播一区二区三区 | 久久亚洲精品国产亚洲老地址 | 国产精品视频久久 | 日韩videos高潮hd | 国产色资源 | 欧美在线视频日韩 | 国产精品视频观看 | 欧美精品久久久 | 美女精品网站 | 色大片免费看 | 黄色在线看网站 | 色网站免费在线观看 | 日韩欧美在线播放 | 2021国产视频| 狠狠狠狠狠色综合 | 婷婷色资源 | 一级黄色片在线观看 | 久久久久国产一区二区 | 国产小视频你懂的在线 | 久久99国产精品久久99 | 久久精品人人做人人综合老师 | 免费观看全黄做爰大片国产 | 久久久久久美女 | 久久综合久久综合这里只有精品 | 欧美做受xxx | 91精品小视频 | 久久精品伊人 | 97理论电影 | 久香蕉| 91视视频在线直接观看在线看网页在线看 | 成人综合日日夜夜 | 欧美日韩中文另类 | 国产裸体视频网站 | 亚洲一区黄色 | 国产亚洲资源 | 一区二区三区手机在线观看 | 97超碰人人澡 | 国产免费xvideos视频入口 | 一级一片免费看 | 波多野结衣资源 | 91福利试看 | 免费在线观看不卡av | 欧美日韩观看 | 久久久成人精品 | 色综合久久久久综合99 | 日韩二区三区 | 欧美伦理一区 | 二区中文字幕 | 激情欧美一区二区免费视频 | 99精品在线免费视频 | 成人毛片一区二区三区 | 黄色国产在线观看 | 97理论电影 | 国产午夜精品一区二区三区在线观看 | 欧美精品久久久久a | 日本久久久久久久久久久 | 在线观看第一页 | 一区二区视频在线播放 | 51久久成人国产精品麻豆 | 激情久久综合 | 国产精品久久久久久婷婷天堂 | 久久在线精品 | 国产免费又爽又刺激在线观看 | 久草在线在线精品观看 | av7777777| 成人免费观看完整版电影 | 亚洲日日日 | 日产中文字幕 | 国产精品毛片久久久久久 | 久久久999精品视频 国产美女免费观看 | 四虎影视成人永久免费观看视频 | 国产免费成人 | 999久久国产精品免费观看网站 | 婷婷五月情 | 日韩av免费一区二区 | 久久久福利影院 | 久久在线精品视频 | 精品高清美女精品国产区 | 国产精品永久免费观看 | www.伊人色.com| 精品久久久久久一区二区里番 | 二区三区在线视频 | 色综合天天视频在线观看 | 日日干综合 | 97理论电影| 亚洲mv大片欧洲mv大片免费 | 色噜噜噜| 国产高清精品在线 | 国产精品18毛片一区二区 | 色综合天天综合 | 黄色av播放| 国产高清日韩 | 久久伊人操 | 美女黄网站视频免费 | 日日日日日 | 99国产免费网址 | 国产伦精品一区二区三区无广告 | jizz18欧美18| 日韩av看片 | 国产成人61精品免费看片 | 色偷偷97 | 久久免费av电影 | 久久在线播放 | 国产精品久久久久久久久久久免费 | 99在线观看精品 | 97色免费视频 | 亚洲精品久久久久999中文字幕 | 91在线日韩| 在线观看日韩 | 人人插人人做 | 色综合久久中文字幕综合网 | 国产精品夜夜夜一区二区三区尤 | 伊人网综合在线观看 | 超碰午夜 | 综合久久久久久久久 | 精品久久一区 | 亚洲一区二区三区毛片 | 91精品毛片 | 亚洲一区不卡视频 | 91看片在线| 曰韩在线| 91久久久久久久一区二区 | 久久夜色网 | 久久伊人五月天 | 精品麻豆入口免费 | 久久久久久久99 | 欧美日韩国产精品爽爽 | 国产黄色在线观看 | 一级一片免费看 | 国产香蕉av | 天天插天天操天天干 | 国产精品久久嫩一区二区免费 | 国产精品成人久久久久久久 | 国产三级视频 | 久久精品久久久久 | 在线 视频 亚洲 | 91视频麻豆视频 | 91成人在线观看高潮 | 最近中文字幕免费大全 | 免费在线观看国产黄 | 中文字幕色在线视频 | 成人亚洲精品久久久久 | 国产高清亚洲 | 特黄特黄的视频 | 国产精品美女www爽爽爽视频 | 国产资源网 | 一本一本久久a久久精品综合妖精 | 国产精品久久久一区二区 | 亚洲精品视频免费在线观看 | 免费在线激情电影 | av一级网站 | 免费在线观看黄色网 | 精品久久久久久一区二区里番 | 中文字幕 欧美性 | 欧美最爽乱淫视频播放 | 深爱激情开心 | 91麻豆精品91久久久久同性 | 中文字幕日本在线 | 久草在线这里只有精品 | 一区二区电影在线观看 | 免费看色的网站 | 国产99久久久国产 | 超黄视频网站 | 免费大片黄在线 | 色美女在线 | av888.com| 伊人天天狠天天添日日拍 | 超碰在线天天 | 国产成人一二片 | 欧美一级性生活视频 | 一区二区三区视频在线 | 黄色成人在线 | 久久久久综合网 | av在线永久免费观看 | 中文字幕丝袜美腿 | 国产成人精品亚洲a | 在线观看久草 | 免费看污在线观看 | 人人插人人玩 | 夜夜狠狠| 久久视频这里只有精品 | 国产精品久久一卡二卡 | 国内精品久久久久影院一蜜桃 | 可以免费观看的av片 | 国产麻豆精品在线观看 | 五月天久久综合网 | 97国产精品 | 正在播放国产精品 | 这里只有精品视频在线观看 | 久久久国产精品亚洲一区 | 国产精品一区二区久久久久 | 午夜国产福利视频 | 国产日韩精品欧美 | 欧美精品黑人性xxxx | 999久久久久久久久久久 | 日韩系列在线观看 | 日韩视频免费在线 | 免费观看国产成人 | 国产乱码精品一区二区蜜臀 | 成年人在线播放视频 | 日本在线观看一区二区三区 | 国产香蕉久久精品综合网 | 日韩激情精品 | 日日夜精品| 91| 婷婷在线视频 | 天天久久夜夜 | 91 在线视频播放 | 在线免费看片 | 久久久精品一区二区 | 丁香花在线视频观看免费 | 美女av免费| 久艹在线播放 | 欧日韩在线视频 | 99精品国产亚洲 | 久久久999免费视频 日韩网站在线 | 国产群p | 久久免费视频在线观看6 | 精品中文字幕视频 | 一区二区三区国产欧美 | 99精品一区二区三区 | 国产成人免费在线观看 | 在线亚洲人成电影网站色www | 久久久久久久久久伊人 | 97在线观看免费观看高清 | 中文字幕乱码在线播放 | 狠狠色丁香婷婷综合欧美 | 中文字幕精品一区二区三区电影 | 精品v亚洲v欧美v高清v | 天天躁日日躁狠狠躁av中文 | 欧美不卡在线 | 成人毛片网 | 色婷婷综合久久久久中文字幕1 | 婷婷六月在线 | 日本韩国精品在线 | 日韩精品aaa | 国产在线一区观看 | 日产av在线播放 | 一区二区三区在线观看中文字幕 | 国产最新在线视频 | 91九色成人蝌蚪首页 | 亚洲永久字幕 | 国产理论片在线观看 | 免费看黄网站在线 | 天天干天天做天天爱 | av成人在线网站 | 探花系列在线 | 亚洲国产精品电影在线观看 | 九月婷婷人人澡人人添人人爽 | 天天爽天天摸 | 天天做天天爱天天综合网 | 国产在线中文 | 久久久久免费看 | 免费在线观看av电影 | 91黄色在线看| 97在线观看免费高清 | 成人在线观看免费 | 黄色片免费电影 | 精品视频成人 | 99精品视频免费观看视频 | 久久69精品久久久久久久电影好 | 美女激情影院 | 一区精品久久 | 黄污视频网站 | 欧美日韩久久不卡 | 国产电影黄色av | 黄网站免费大全入口 | 日本中文字幕在线看 | 中日韩欧美精彩视频 | 亚洲午夜精品电影 | 91爱在线 | 狠狠色丁香久久婷婷综合五月 | 久久www免费人成看片高清 | 国产精品亚洲视频 | 欧美精品久久久久久久久久丰满 | 美女黄色网在线播放 | 免费一区在线 | 一区二区欧美日韩 | 成人av高清| 九色一区二区 | 国产精品国产三级国产不产一地 | 日韩一级网站 | 精品一二三区 | 午夜.dj高清免费观看视频 | 97碰在线视频| 97色在线观看免费视频 | 日韩欧美国产视频 | 不卡中文字幕av | 欧美 日韩 国产 成人 在线 | 69国产盗摄一区二区三区五区 | 香蕉网在线播放 | 99国产精品久久久久久久久久 | 粉嫩av一区二区三区免费 | a级一a一级在线观看 | 1000部18岁以下禁看视频 | 美女久久久久久久久久久 | 久久久综合九色合综国产精品 | 美女网色| 亚洲一区二区三区四区精品 | 久久尤物电影视频在线观看 | 亚洲乱码中文字幕综合 | 国内揄拍国内精品 | 久草免费在线视频观看 | 五月天综合激情 | 一区二区三区中文字幕在线观看 | 亚洲综合网站在线观看 | 欧美巨乳网 | 久久久久久国产精品 | 欧美日韩性 | 国产免费一区二区三区网站免费 | 欧美日韩国产一区二区三区 | 少妇bbbb搡bbbb桶 | 中文字幕中文字幕在线中文字幕三区 | 亚洲精品午夜aaa久久久 | 久久免费精品国产 | 久久久久五月天 | 麻豆国产精品视频 | 国产精品9区 | 精品久久久久久一区二区里番 | 4438全国亚洲精品观看视频 | 亚洲专区中文字幕 | 日韩精品一区电影 | 五月婷婷视频在线 | 国产香蕉在线 | www黄免费| 波多野结衣日韩 | 久久久久亚洲天堂 | 日本精品久久久久久 | 日韩亚洲欧美中文字幕 | 国产在线精品区 | 久久免费成人网 | 国内精品中文字幕 | av成人免费在线 | 日韩电影在线观看中文字幕 | 欧美色久 | 99精品在线视频观看 | 日日草视频 | 久热超碰 | 天天超碰 | 久久国产网站 | 日韩在线观看视频免费 | 日产av在线播放 | 成人aⅴ视频 | 久久久久久国产精品999 | 日韩国产高清在线 | 蜜桃视频在线观看一区 | 久久国产视频网站 | 日韩精品欧美精品 | 日批视频在线 | 欧美日韩亚洲第一页 | 狠狠的日日 | 国产精品入口66mio女同 | 亚洲aⅴ乱码精品成人区 | 精品一区二区6 | 亚洲伦理中文字幕 | 国内久久久久久 | 免费日韩av片| 91成人短视频在线观看 | 丁香在线观看完整电影视频 | 美女黄频在线观看 | 999热线在线观看 | 91字幕| 久久夜色精品国产欧美乱极品 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 九九热在线播放 | 国产精品第二十页 | 国产一区视频免费在线观看 | 91在线观看视频网站 | 欧美a免费| 视频国产在线观看18 | 在线免费av网站 | 99精品视频免费全部在线 | 国产精品网在线观看 | 亚洲天堂色婷婷 | 狠狠干夜夜 | 国产一级淫片在线观看 | 日韩电影中文字幕 | 色综合综合 | 亚洲涩涩涩涩涩涩 | 亚洲爱视频 | 人人澡人摸人人添学生av | 久久久久www | 国产生活一级片 | 在线看片成人 | 国产96精品 | 久久亚洲美女 | 天天干天天色2020 | 视频成人 | 伊人www22综合色 | 在线免费观看的av | 久久精国产 | 天天色天天色天天色 | 成人少妇影院yyyy | 国产高清一级 | 久久精品理论 | 久久久久高清 | 日韩电影中文 | 麻豆免费在线视频 | 免费黄色a网站 | 久久久精品欧美 | 欧美色图亚洲图片 | 亚洲综合网 | 色综合久久五月天 | 在线电影日韩 | av片子在线观看 | aaawww | 999久久精品 | 日日操夜夜操狠狠操 | 99中文在线 | 午夜精品av | av电影免费 | 久久久久国产精品视频 | 久久一区二| 日日夜夜操av | 狠狠狠狠狠狠干 | 欧美视频18 | 国产精品嫩草影院123 | a天堂免费 | 亚洲精品美女久久久久 | 免费高清无人区完整版 | 伊人五月| 黄色大全在线观看 | 91超级碰碰 | 欧美一级片在线免费观看 | 欧美成人精品欧美一级乱黄 | 999热线在线观看 | 久久久久久久久亚洲精品 | 999在线视频 | 毛片永久新网址首页 | 欧美一进一出抽搐大尺度视频 | 24小时日本在线www免费的 | 国产乱老熟视频网88av | 国产精品一区二区久久精品爱涩 | 97电影院在线观看 | 欧美精品在线一区二区 | www.狠狠操 | 成人免费看片98欧美 | 色婷婷88av视频一二三区 | 久久人人97超碰精品888 | 成人在线你懂得 | 久草国产精品 | 人人盈棋牌 | 在线观看国产麻豆 | 亚洲视频 视频在线 | 久久免费片 | 人人爱人人爽 | 婷婷久久综合九色综合 | 日韩激情网 | 91成人在线免费观看 | 激情网第四色 | 福利久久久 | 婷婷视频 | 国产在线v| 日韩高清不卡一区二区三区 | 国产玖玖在线 | 午夜精品视频一区二区三区在线看 | 久久综合国产伦精品免费 | 人人狠 | 美女精品 | 免费午夜av | 999精品视频 | 中文字幕一区二区在线观看 | 久久久久久久久综合 | 激情久久伊人 | 欧美亚洲一区二区在线 | 久久免费国产 | 三级av小说| www亚洲国产 | 免费麻豆| 色播五月激情综合网 | 亚洲国产99 | av888av.com| 国产在线国产 | 中文字幕在线免费看线人 | 国产成人精品av久久 | 一级黄色片在线免费观看 | 天天曰天天爽 | av免费观看网址 | 在线观看va| 性色av一区二区三区在线观看 | 狠狠躁夜夜躁人人爽超碰91 | 最新动作电影 | 一级黄色片毛片 | 国内精品一区二区 | 日韩免费不卡av | 国内精品亚洲 | 人人cao| 欧美国产日韩一区二区三区 | 丁香婷婷色综合亚洲电影 | 免费a级毛片在线看 | 特级西西444www高清大视频 |