python-N02:面向?qū)ο?/h2>

面向?qū)ο?/h1>
  1. 面向?qū)ο蠛喗?br> ? Python是一門面向?qū)ο蟮木幊陶Z言
    ? 所謂面向?qū)ο蟮恼Z言,簡單理解就是語言中的所有操作都是通過對象來進(jìn)行的
    ? 面向過程
    ? 面向過程指將我們的程序分解為一個一個步驟,通過對每個步驟的抽象來完成程序
    ? 這種編寫方式往往只適用于一個功能,如果要實(shí)現(xiàn)別的功能,往往復(fù)用性比較低
    ? 這種編程方式符號人類的思維,編寫起來比較容易
    ? 1.媽媽穿衣服穿鞋出門
    ? 2.媽媽騎上電動車
    ? 3.媽媽到超市門口放好電動車
    ? 4.媽媽買西瓜
    ? 5.媽媽結(jié)賬
    ? 6.媽媽騎電動車回家
    ? 7.到家孩子吃西瓜
    ? 面向?qū)ο蟮木幊陶Z言,關(guān)注的是對象,而不注重過程,對于面向?qū)ο笠磺薪詫ο?br> ? 以上方式可以用 孩子媽媽給孩子買瓜來解決
    ? 面向?qū)ο蟮木幊趟枷?,將所有功能統(tǒng)一保存到對應(yīng)的對象中,要使用某個功能,直接找到對應(yīng)的對象即可
    ? 這種編碼方式比較容易閱讀,并且易于維護(hù),容易復(fù)用。但是編寫的過程中不太符合常規(guī)的思維,編寫相對麻煩
  2. 類(class)
    ? 我們目前學(xué)習(xí)的都是Python的內(nèi)置對象,但是內(nèi)置對象并不都能滿足我們的需求,所以我們在開發(fā)中經(jīng)常要自定義一些對象
    ? 類簡單理解它就是相當(dāng)于一個圖紙,在程序匯總我們需要根據(jù)類來創(chuàng)建對象。
    ? 類就是對象的圖紙
    ? 我們也稱對象是類的實(shí)例(instance)
    ? 如果多個對象是通過一個類創(chuàng)建的,我們稱這些對象是一類對象

語法

class 類名([父類]):
pass
? 類也是一個對象,類就是用來創(chuàng)建對象的對象
? 可以像對象中添加變量,對象中的變量稱之為屬性 語法:對象.屬性名 = 屬性值

class(MyClass):
mc = MyClass()
mc.name = "劉亦菲"

print(mc, type(mc))
# isinstance(),返回的布爾值
r = isinstance(123, int)
print(r)       
  1. 類的定義
    ? 類和對象都是對現(xiàn)實(shí)生活中事物的抽象
    ? 事物包含兩部分
    ? 1. 數(shù)據(jù)(屬性)
    ? 2. 行為(方法)
    ? 調(diào)用方法 對象.方法名()
class Person () :


        name = "liuyifei"

        def speak(m):
              print("粉絲們好")
p1 = Person()

p2 = Person()

p1.speak()

>>>
粉絲們好

? 方法調(diào)用和函數(shù)調(diào)用的區(qū)別:如果是函數(shù)調(diào)用,調(diào)用時有幾個形參,就會傳遞幾個實(shí)參。如果是方法調(diào)用,默認(rèn)傳遞一個參數(shù),所以方法中至少得有一個形參
? 在類代碼塊中,我們可以定義變量和函數(shù)
? 變量會成為該類實(shí)例的公共屬性,所有的該實(shí)例都可以通過 對象.屬性名的形式訪問
? 函數(shù)會成為該類實(shí)例的公共方法,所有該類實(shí)例都可以通過 對象.方法名的形式訪問

  1. 參數(shù)self
    4.1 屬性和方法
    ? 類中定義的屬性和方法都是公共的,任何該類實(shí)例都可以訪問
    ? 屬性和方法的查找流程
    ? 當(dāng)我們調(diào)用一個對象的屬性時,解析器會現(xiàn)在當(dāng)前的對象中尋找是否還有該屬性,如果有,則直接返回當(dāng)前的對象的屬性值。如果沒有,則去當(dāng)前對象的類對象中去尋找,如果有則返回類對象的屬性值。如果沒有就報錯
    ? 類對象和實(shí)例對象中都可以保存屬性(方法)
    ? 如果這個屬性(方法)是所有的實(shí)例共享的,則應(yīng)該將其保存到類對象中
    ? 如果這個屬性(方法)是某個實(shí)例獨(dú)有的。則應(yīng)該保存到實(shí)例對象中
    ? 一般情況下,屬性保存到實(shí)例對象中 而方法需要保存到類對象中
    4.2 self
    ? self在定義時需要定義,但是在調(diào)用時會自動傳入。
    ? self的名字并不是規(guī)定死的,但是最好還是按照約定是用self
    ? self總是指調(diào)用時的類的實(shí)例

class Person () :

         def speak(self):
          print("粉絲們好,我是%s"%self.name)

p1 = Person()
p1.name = "周慧敏"
p2 = Person()
p2.name = "劉亦菲"
p1.speak()
p2.speak()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容