乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 零基礎(chǔ)分分鐘理解python面向?qū)ο竽切┦履阋残校?/span>

       F2967527 2019-08-07

      一、面向?qū)ο?/p>

      1、面向過(guò)程

      a、優(yōu)點(diǎn):極大的降低了寫程序的復(fù)雜度,只需要順著執(zhí)行的步驟,堆疊代碼即可

      b、缺點(diǎn):一套流水線或者流程就是來(lái)解決一個(gè)問(wèn)題,代碼就是牽一發(fā)而東莞全身

      2、面向?qū)ο?/p>

      a、優(yōu)點(diǎn):解決程序的擴(kuò)展性,對(duì)某一個(gè)對(duì)象單獨(dú)修改,會(huì)立刻反應(yīng)到整個(gè)體系中

      b、缺點(diǎn):可控性差,無(wú)法向面向過(guò)程的程序設(shè)計(jì)流水線式的可以很精準(zhǔn)的預(yù)測(cè)問(wèn)題的處理流程與結(jié)果,面向?qū)ο蟮某绦蛞坏╅_(kāi)始就有對(duì)象之間的交互解決問(wèn)題。

      3、 類:具有相同特征的一類事物(人、狗、老虎)

      4、對(duì)象/實(shí)例:具體的某一個(gè)事物(隔壁阿花、樓下旺財(cái))

      5、實(shí)例化:類——>對(duì)象的過(guò)程

      6、 在python中,用變量表示特征,用函數(shù)表示技能,因而具有相同特征和技能的一類事物就是‘類’,

      7、對(duì)象是則是這一類事物中具體的一個(gè)

      class Person: #定義一個(gè)人類

      role = 'person' #人的角色屬性都是人

      def walk(self): #人都可以走路,也就是有一個(gè)走路方法,也叫動(dòng)態(tài)屬性

      print('person is walking...')

      class 類名:

      類屬性 = None def __init__(self,對(duì)象屬性):

      self.對(duì)象屬性 = 對(duì)象屬性 def 方法名(self): pass實(shí)例 = 類名(10)

      實(shí)例.方法名()

      8、類的兩種作用:屬性引用和實(shí)例化

      9、屬性引用(類名.屬性)

      class Person: #定義一個(gè)人類

      role = 'person' #人的角色屬性都是人

      def walk(self): #人都可以走路,也就是有一個(gè)走路方法

      print('person is walking...')print(Person.role) #查看人的role屬性print(Person.walk) #引用人的走路方法,注意,這里不是在調(diào)用。小編推薦一個(gè)學(xué)Python的學(xué)習(xí)裙【五八八,零九零,九四二】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有很多干貨和技術(shù)分享

      10、例化:類名加括號(hào)就是實(shí)例化,會(huì)自動(dòng)觸發(fā)__init__函數(shù)的運(yùn)行,可以用它來(lái)為每個(gè)實(shí)例定制自己的特征

      class Person: #定義一個(gè)人類

      role = 'person' #人的角色屬性都是人

      def __init__(self,name):

      self.name = name # 每一個(gè)角色都有自己的昵稱;

      def walk(self): #人都可以走路,也就是有一個(gè)走路方法

      print('person is walking...')print(Person.role) #查看人的role屬性print(Person.walk) #引用人的走路方法,注意,這里不是在調(diào)用

      11、

      類名

      類名.類屬性

      類名.方法名

      實(shí)例 = 類名(參數(shù),參數(shù)) #實(shí)例就是對(duì)象實(shí)例

      實(shí)例.方法名()

      實(shí)例.對(duì)象屬性

      實(shí)例增加屬性

      實(shí)例.新的屬性名 = 1000print(實(shí)例.新的屬性名)

      12、關(guān)于self

      self:在實(shí)例化時(shí)自動(dòng)將對(duì)象/實(shí)例本身傳給__init__的第一個(gè)參數(shù),你也可以給他起個(gè)別的名字.

      對(duì)象/實(shí)例只有一種作用:屬性引用

      class 類名: def __init__(self,參數(shù)1,參數(shù)2):

      self.對(duì)象的屬性1 = 參數(shù)1

      self.對(duì)象的屬性2 = 參數(shù)2 def 方法名(self):pass

      def 方法名2(self):pass對(duì)象名 = 類名(1,2) #對(duì)象就是實(shí)例,代表一個(gè)具體的東西

      #類名() : 類名+括號(hào)就是實(shí)例化一個(gè)類,相當(dāng)于調(diào)用了__init__方法

      #括號(hào)里傳參數(shù),參數(shù)不需要傳self,其他與init中的形參一一對(duì)應(yīng)

      #結(jié)果返回一個(gè)對(duì)象對(duì)象名.對(duì)象的屬性1 #查看對(duì)象的屬性,直接用 對(duì)象名.屬性名 即可對(duì)象名.方法名() #調(diào)用類中的方法,直接用 對(duì)象名.方法名() 即可

      dir(類) #返回類中的所有名字列表isinstance(對(duì)象,類) #判斷對(duì)象是否為類的實(shí)例print(Person.__dict__) # 返回一個(gè)字典 key是屬性名,value是屬性值print(Person.__module__) #person類所在的模塊print(Person.__name__,type(Person.__name__)) #字符串?dāng)?shù)據(jù)類型的類名

      13、類命名空間與對(duì)象、實(shí)例的命名空間

      a、常見(jiàn)一個(gè)類就會(huì)創(chuàng)建一個(gè)類的名稱空間,用來(lái)儲(chǔ)存類中定義的所有名字,這些名字成為類的屬性

      b、而類有兩種屬性:靜態(tài)屬性和動(dòng)態(tài)屬性

      靜態(tài)屬性就是直接在類中定義的變量

      動(dòng)態(tài)屬性就是定義在類中的方法

      創(chuàng)建一個(gè)對(duì)象/實(shí)例就會(huì)創(chuàng)建一個(gè)對(duì)象/實(shí)例的名稱空間,存放對(duì)象/實(shí)例的名字,稱為對(duì)象/實(shí)例的屬性

      面相對(duì)象的組合用法:

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

      列子:

      圓的周長(zhǎng)與面積

      14、面向?qū)ο蟮娜筇卣?/p>

      a、繼承

      class Animal: #父類 基類 超類

      def __init__(self,name,life_value,aggr):

      self.name = name

      self.life_value = life_value

      self.aggr = aggrclass Person(Animal): #子類 派生類

      passclass Dog(Animal): #子類 派生類

      passegg = Person('egon',1000,50)print(egg.name)print(egg.aggr

      python2class Dad: #經(jīng)典類class Dag(object) #新式類python3class Dad == class Dag(object) #新式類

      1、繼承的語(yǔ)法

      class 類名(父類名): 想在子類中實(shí)現(xiàn)調(diào)用父類的方法 在類內(nèi) ——super(子類名,self).方法名() 在類外面 ——super(子類名,對(duì)象名).方法名() 如果不指定繼承的父類,默認(rèn)繼承object 子類可以使用父類的所有屬性和方法 如果子類有自己的方法就執(zhí)行自己的的 如果是子類沒(méi)有的方法就執(zhí)行父類的 如果子類父類都沒(méi)有這個(gè)方法就報(bào)錯(cuò)

      繼承、抽象、派生

      繼承 是從大范圍到小范圍

      抽象 小范圍到大范圍

      派生 就是在父類的基礎(chǔ)上又產(chǎn)生子類——派生類

      父類里沒(méi)有的 但子類有的 ——派生方法

      派生屬性

      方法的重寫

      父類里有的方法,在子類里重新實(shí)現(xiàn)

      2、繼承的兩種用途:

      b:繼承基類的方法,并且做出自己的改變或者擴(kuò)展(代碼重用)

      a:聲明某個(gè)子類兼容于某基類,定義一個(gè)接口類Interface,接口類中定義

      了一些接口名(就是函數(shù)名)且并未實(shí)現(xiàn)接口的功能,子類繼承接口類,并且實(shí)現(xiàn)接口中的功能

      b、封裝

      1、優(yōu)點(diǎn):

      a、將變化隔離

      b、封裝使用

      c、提高復(fù)用性

      d、提高安全性

      2、封裝原則:

      a、將不需要對(duì)外提供的內(nèi)容都隱藏起來(lái)

      b、把屬性都隱藏起來(lái)提供公共方法對(duì)其訪問(wèn)

      3、私有變量和私有方法

      a、在python中用雙劃線的開(kāi)頭的的方式降屬性隱藏起來(lái)(設(shè)置私有的)

      property屬性

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

      c、多態(tài):”多態(tài)指的是一類事物有多種形態(tài)(比如:老師.下課鈴響了(),學(xué)生.下課鈴響了(),老師執(zhí)行的是下班操作,學(xué)生執(zhí)行的是放學(xué)操作,雖然二者消息一樣,但是執(zhí)行的效果不同)

      多態(tài)指的是:一類實(shí)物有多種狀態(tài)

      python自帶多態(tài):

      多態(tài):同一類事物的多種狀態(tài)

      python里處處都是多態(tài),只是我們一般發(fā)現(xiàn)不了

      操作的時(shí)候不需要關(guān)心這個(gè)對(duì)象的數(shù)據(jù)類型,你只要用就行了

      15、反射

      1、 反射:可以用字符串的方式去訪問(wèn)對(duì)象的屬性,調(diào)用對(duì)象的方法(但是不能去訪問(wèn)方法),python中一切皆對(duì)象,都可以使用反射。

      2、反射有四種方法:

      hasattr:hasattr(object,name)判斷一個(gè)對(duì)象是否有name屬性或者name方法。有就返回True,沒(méi)有就返回False

      getattr:獲取對(duì)象的屬性或者方法,如果存在則打印出來(lái)。hasattr和getattr配套使用

      需要注意的是,如果返回的是對(duì)象的方法,返回出來(lái)的是對(duì)象的內(nèi)存地址,如果需要運(yùn)行這個(gè)方法,可以在后面添加一對(duì)()

      setattr:給對(duì)象的屬性賦值,若屬性不存在,先創(chuàng)建后賦值

      delattr:刪除該對(duì)象指定的一個(gè)屬性

      a、內(nèi)置方法:isinstance和issubclass

      isinstance(obj,cls)檢查是否obj是否是類 cls 的對(duì)象

      class Foo: passclass Son(Foo): passs=Son()print(isinstance(s,Son))

      b、內(nèi)置方法:issubclass(sub, super)檢查sub類是否是 super 類的派生類

      class Foo(object): pass

      class Bar(Foo): pass

      issubclass(Bar, Foo)

      c、python面向?qū)ο笾械姆瓷洌和ㄟ^(guò)字符串的形式操作對(duì)象相關(guān)的屬性,python中一切事物都是對(duì)象(都可以用反射)

      檢查是否含有某屬性---hasattr 返回布爾值

      獲取屬性---getattr 沒(méi)有就會(huì)報(bào)錯(cuò)

      設(shè)置屬性---setattr

      刪除屬性---delattr

      d、內(nèi)置方法:__del__

      析構(gòu)方法,當(dāng)對(duì)象在內(nèi)存中被釋放時(shí),自動(dòng)觸發(fā)執(zhí)行。

      注:此方法一般無(wú)須定義,因?yàn)镻ython是一門高級(jí)語(yǔ)言,程序員在使用時(shí)無(wú)需關(guān)心內(nèi)存的分配和釋放,因?yàn)榇斯ぷ鞫际墙唤oPython解釋器來(lái)執(zhí)行,所以,析構(gòu)函數(shù)的調(diào)用是由解釋器在進(jìn)行垃圾回收時(shí)自動(dòng)觸發(fā)執(zhí)行的。

      class Foo: def __del__(self): print('fgs')

      f=Foo()print(123)print(123)del fprint(123)print(123)print(123)

      e、內(nèi)置方法:item系列

      __getitem__\__setitem__\__delitem__

      __new__

      class A: def __init__(self): #有一個(gè)方法在幫你創(chuàng)造self

      print('in init function')

      self.x=1 def __new__(cls, *args, **kwargs): print('in init funct') return object.__new__(A,*args,**kwargs)

      a=A()

      f、__str__和__repr__改變對(duì)象的字符串顯示

      __str__,__repr__

      15、內(nèi)置方法

      a、靜態(tài)方法和類方法

      1、類方法:有個(gè)默認(rèn)參數(shù)cls,并且可以直接用類名去調(diào)用,可以與類屬性交互(也就是可以使用類屬性)

      2、靜態(tài)方法:讓類里的方法直接被類調(diào)用,就像正常調(diào)用函數(shù)一樣

      b、類方法和靜態(tài)方法的相同點(diǎn):都可以直接被類調(diào)用,不需要實(shí)例化

      c、類方法和靜態(tài)方法的不同點(diǎn):

      類方法必須有一個(gè)cls參數(shù)表示這個(gè)類,可以使用類屬性

      靜態(tài)方法不需要參數(shù)

      d、綁定方法:分為普通方法和類方法

      普通方法:默認(rèn)有一個(gè)self對(duì)象傳進(jìn)來(lái),并且只能被對(duì)象調(diào)用-------綁定到對(duì)象

      類方法:默認(rèn)有一個(gè)cls對(duì)象傳進(jìn)來(lái),并且可以被類和對(duì)象(不推薦)調(diào)用-----綁定到類

      e、非綁定方法:靜態(tài)方法:沒(méi)有設(shè)置默認(rèn)參數(shù),并且可以被類和對(duì)象(不推薦)調(diào)用-----非綁定

      16、接口類與抽象類

      a、 接口類:(在抽象類的基礎(chǔ)上)

      在python中,默認(rèn)是沒(méi)有接口類的

      接口類不能被實(shí)例化(如果實(shí)例化會(huì)報(bào)錯(cuò))

      接口類中的方法不能被實(shí)現(xiàn)

      接口也就是做約束,讓下面的類的方法都按照接口類中給出的方法去定義。如果接口類里面有的方法類里面沒(méi)有,那么那個(gè)類就不能被實(shí)例化。(字面理解)

      繼承的第二種含義非常重要。它又叫“接口繼承”。

      接口繼承實(shí)質(zhì)上是要求“做出一個(gè)良好的抽象,這個(gè)抽象規(guī)定了一個(gè)兼容接口,使得外部調(diào)用者無(wú)需關(guān)心具體細(xì)節(jié),可一視同仁的處理實(shí)現(xiàn)了特定接口的所有對(duì)象”——這在程序設(shè)計(jì)上,叫做歸一化。

      b、抽象類

      在python中,默認(rèn)是有的

      父類的方法,子類必須實(shí)現(xiàn)

      抽象類(父類)的方法可以被實(shí)現(xiàn)

      抽象類和接口類的區(qū)別:接口類不能實(shí)現(xiàn)方法,抽象類可以實(shí)現(xiàn)方法里面的內(nèi)容

      抽象類和接口類的相同點(diǎn):都是用來(lái)做約束的,都不能被實(shí)例化

      抽象類和接口類的使用:

      當(dāng)幾個(gè)子類的父類有相同的功能需要被實(shí)現(xiàn)的時(shí)候就用抽象類

      當(dāng)幾個(gè)子類有相同的功能,但是實(shí)現(xiàn)各不相同的時(shí)候就用接口類

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多