欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python之初識面向對象-創(chuàng)新互聯

一、OOP

oop就是代碼的重用,通過分解代碼,最小化代碼的冗余以及對現存的代碼進行定制來編寫程序;OOP模型中有兩種對象,類對象和實例對象。類對象提供默認行為,是生產實例對象的工廠;類對象和實例對象都有各自命名空間。

十多年的忻府網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網站建設的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整忻府建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯建站從事“忻府網站設計”,“忻府網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

二、python類的主要特性

? class語句創(chuàng)建類對象并將其賦值給變量名
? class語句內的頂層賦值語句會創(chuàng)建類的屬性
? 類屬性提供對象的狀態(tài)和行為

三、python實例對象的主要特性

? 每次類調用時,都會創(chuàng)建并返回新的實例對象
? 每個實例對象繼承類的屬性并獲得了自己的命名空間
? 每個實例對象通過構造方法獲得每個實例自己的屬性

四、創(chuàng)建類和實例對象-類的封裝

封裝,是將對象的數據與操作數據的方法相結合,通過方法將對象的數據與實現細節(jié)保護起來,就稱為封裝。外界只能通過對象的方法訪問對象,因此封裝同時也實現了對象的數據隱藏

class Person():
#類的屬性--靜態(tài)屬性
country="China"

#封裝--初始化方法
def __init__(self,*args):
    self.name=args[0]
    self.age=args[1]
    self.aggr=args[2]
    self.sex=args[3]

#方法
def walk(self,n):
    print("%szoule%sbu"%(self.name,n))

#調用類創(chuàng)建實例對象,自動執(zhí)行構造方法__init__
jonny=Person('jonny',11,23,'man')

#實例對象調用類的方法
jonny.walk(10)

#實例對象調用類的屬性
print(jonny.country)

五、類的繼承

單繼承

類可以通過繼承進行定制;類的繼承豐富了軟件的層級,在層級較低的地方覆蓋現有的屬性,讓其行為特定化。
在python中,實例對象從類中繼承,而類繼承于超類
? 超類寫在類開頭的括號中
? 類從其超類中繼承屬性
? 實例會繼承所有可讀取類的屬性
? 每次實例對象的屬性調用都會進行類樹搜索
? 邏輯的修改是通過創(chuàng)建子類,而不是修改超類

#創(chuàng)建父類---經典類
class a():
    a1="11"
#創(chuàng)建子類,繼承父類a
class b(a):
    b1="22"
#調用父類的屬性
print(b.a1)

以上的例子中父類是經典類,因為父類未繼承object類;繼承object類的父類是新式類
在python3之后,所有類默認繼承object類,就是說所有類都是新式類。

#創(chuàng)建父類---新式類
class a(object):
    a1="11"
#創(chuàng)建子類,繼承父類a
class b(a):
    b1="22"
#調用父類的屬性
print(b.a1)

在繼承中,父類是經典類那么子類就是經典類;父類是新式類,子類就是新式類,Python3之后,所有類都是新式類

多繼承

python支持繼承多個類,那么在繼承父類的屬性和方法時改怎么找呢?

class D(object):

    def display(self):
        print('D.display')

class C(D):

    def display(self):
        print('C.display')

class B(D):

    def display(self):
        print('B.display')

class A(B,C):

    def display(self):
        print('A.display')

a=A()
a.display()

多繼承中,子類的對象調用一個方法,默認是就近原則,在python2.7之前的經典類中是深度優(yōu)先,在python3之后的新式類中是廣度優(yōu)先。
執(zhí)行display方法時,查找順序為 A--B--C--D

Python之初識面向對象

Python3中繼承特性的新方法

mro()

類的函數mro()記錄了繼承的順序,mro()

A.mro()
結果如下:
[<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.D'>, <class 'object'>]

super()

super方法是python3之后版本才有的,用于新式類,super方法是根據調用者的節(jié)點位置的廣度優(yōu)先順序來調用父類的函數或方法的。
兩種調用方式
1、父類名.方法名,需要自己傳self參數
2、super().方法名,不需要自己傳self

class Person(object):
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

    def eat(self):
        print("eatfood")

class Teacher(Person):
    def __init__(self,name,age,sex,school,cls):
        Person.__init__(self,name,age,sex)

    #派生方法
    def score(self):
        print("teacherscore")
    def eat(self):
        print("teachereating")

t1=Teacher("adc",42,"man","127","python1ban")
print(t1.name)

#傳入類和對象,調用父類的方法
super(Teacher,t1).eat()

六、類的多態(tài)

類的多態(tài)性是指具有不同功能的函數可以使用相同的函數名,這樣就可以用一個函數名調用不同內容的函數。

class Person():
def display(self):
    pass

class Man(Person):
    def display(self):
        print("man")

class Woman(Person):
    def display(self):
        print("woman")

def func(obj):
    obj.display()

#實例化對象
man1=Man()
woman1=Woman()

#多態(tài)
func(man1)
func(woman1)

七、組合

一個對象的屬性值是另外一個類的對象

class Birthday():
    def __init__(self,year,month,day):
        self.year=year
        self.month=month
        self.day=day

class Person():
    def __init__(self,name,age,birthday):
        self.name=name
        self.age=age
        self.birthday=birthday

bd=Birthday(2019,11,11)

jonny=Person("jonny",20,bd)

#組合調用
print(jonny.birthday.year)

八、派生

父類中沒有的屬性,在子類中出現,叫做派生屬性
父類中沒有的方法,在子類中出現,叫做派生方法

class Person(object):
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

    def eat(self):
        print("eatfood")

class Teacher(Person):
    def __init__(self,name,age,sex,school,cls):
        Person.__init__(self,name,age,sex)

    #派生方法
    def score(self):
        print("teacherscore")
    def eat(self):
        print("teachereating")

t1=Teacher("adc",42,"man","127","python1ban")
print(t1.name)

#傳入類和對象,調用父類的方法
super(Teacher,t1).eat()

九、面向對象的編程規(guī)范:接口類與抽象類

接口類與抽象類的不同點:
接口類:支持多繼承,接口類中的所有的方法都必須不能實現;python中沒有接口類,java沒有多繼承,所以為了接口隔離原則,設計了接口這個概念

抽象類:不支持多繼承,抽象類中的方法可以有一些代碼的實現;python自帶多繼承,所以直接用class來實現接口類;python支持抽象類,一般情況下單繼承,java本來就有單繼承,所以就有了抽象類。
接口類與抽象類的相同點:
1、都依賴abc模塊實現
2、都是面向對象的編程規(guī)范
3、接口類和抽象類都不能實例化

一般情況下,單繼承,能實現的功能是一樣的,所以在父類中可以有簡單的基礎實現
多繼承的情況下,由于功能比較復雜,所以不容易抽象出相同的功能的具體實現寫在父類中

接口類的實現:

from abc import abstractmethod,ABCMeta
class Payment(metaclass=ABCMeta):#元類,默認的元類type
    @abstractmethod
    def pay(self,money):pass
#raiseNotImplemented#手動拋異常,沒有實現這個方法
#規(guī)范:接口類或者抽象類都可以
#接口類:支持多繼承,接口類中的所有的方法都必須不能實現-----java
#抽象類:不支持多繼承,抽象類中的方法可以有一些代碼的實現-----java

class Wechatpay():
    defpay(self,money):
    print("微信支付了%s元"%money)

class Alipay():
    defpay(self,money):
    print("ali支付了%s元"%money)

def pay(pay_obj,money):#統(tǒng)一支付接口
    pay_obj.pay(money)

wechat=Wechatpay()
ali=Alipay()

pay(ali,200)

接口類多繼承示例:

from abc import ABCMeta,abstractmethod

class Swim_Animal(metaclass=ABCMeta):
    @abstractmethod
    def swim(self):
        pass

class Walk_Animal(metaclass=ABCMeta):
    @abstractmethod
    def walk(self):pass

class Fly_Animal(metaclass=ABCMeta):
    @abstractmethod
    def fly(self):pass

class Tiger(Walk_Animal,Swim_Animal):
    def swim(self):pass
    def walk(self):pass

class Swan(Walk_Animal,Swim_Animal,Fly_Animal):
    def swim(self):pass
    def walk(self):pass
    def fly(self):pass

class Oldying(Walk_Animal,Fly_Animal):
    def walk(self):pass
    def fly(self):pass

抽象類示例:

from abc import abstractmethod,ABCMeta

class All_file(metaclass=ABCMeta):
    @abstractmethod
    def read(self):#規(guī)范子類必須有的方法
        print("du")

    @abstractmethod
    def write(self):
        print("xie")

class Doc(All_file):
    def read(self):pass
    def write(self):pass

classTxt(All_file):
    def read(self):pass
    def write(self):pass

class Ppt(All_file):
    def read(self):print("pptdu")
    def write(self):pass

p1=Ppt()
p1.read()

另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站欄目:Python之初識面向對象-創(chuàng)新互聯
轉載注明:http://aaarwkj.com/article2/dspoic.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站設計公司微信小程序、網站設計、品牌網站建設、軟件開發(fā)企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站優(yōu)化排名
日本精品不卡一二三区| 亚洲色图综合在线观看| 亚洲五月婷婷久久综合| 五月婷婷色综合激情五月| 精品国产美女主播在线| 内射久久一区二区亚洲| 国产经典三级在线看| 亚洲欧洲精品真人av蜜臀| 国产男女做爰在线视频| 一本色桃子精品久久中文字幕| 免费的黄色片带中文字幕| 精品毛片av一区二区三区| 饥渴少妇高潮露脸嗷嗷叫| 日本师生三片在线观看| 久久精品亚洲天然东京热 | 91人妻人澡人人爽| 午夜福利片免费在线观看| 禁止18岁以下的视频| 在线高清中文字幕三区| 亚洲av成人免费在线| 国产精品一区二区一牛影视| 91麻豆粉色视频在线| 国产剧免费看视频网站成人| 美女在线免费观看av| 欧美香蕉在线观看视频| 综合久久—本道中文字幕| 日韩精品福利片午夜免费| 国产亚洲视频一区二区观看| 一区二区亚洲欧美精品| 91人妻精品丰满少妇区| 91久久精品人妻一区二区| 黄色大全欧美在线观看| 欧美视频综合一级91| 麻豆国产传媒片在线看| 中文字幕日韩精品在线看| 91久久精品91久久性色| 好吊妞视频这里只有精| 日韩精品一区二区三区四区蜜桃| 日本老太老熟妇一级特黄| 亚洲一区二区精品欧美日韩| 巨乳人妻一区二区三区|