Python入門之路(11)

2021-10-24 10:59:39 字數 3724 閱讀 5859

python是一門物件導向的程式語言,所謂物件導向的語言,簡單理解就是語言中的所有操作都是通過物件來進行的。

物件就是記憶體中專門用來儲存的一塊區域,物件的結構包含id(標識)、type(型別),value(值)

面向過程指將我們的程式分解為乙個乙個步驟,通過對每個步驟的抽象來完成程式。

這種編寫方式往往只適用於乙個功能,如果要實現別的功能,往往復用性比較低

這種程式設計方式符號人類的思維,編寫起來比較容易

1

.媽媽穿衣服穿鞋出門

2.媽媽騎上電動車

3.媽媽到超市門口放好電動車

4.媽媽買西瓜

5.媽媽結賬

6.媽媽騎電動車回家

7.到家孩子吃西瓜

物件導向的程式語言,關注的是物件,而不注重過程。

物件導向的程式設計思想,將所有功能統一儲存到對應的物件中,要使用某個功能,直接找到對應的物件即可。

這種編碼方式比較容易閱讀,並且易於維護容易復用。但是編寫的過程中不太符合常規的思維,編寫相對麻煩。

類簡單理解它就是相當於乙個圖紙,在程式中我們需要根據類來建立物件,類就是物件的圖紙,我們也稱,物件是類的例項(instance)。

如果多個物件是通過乙個類建立的,我們稱這些物件是一類物件。

# 語法

# class 類名([父類]):

# pass

class

myclass()

:pass

print

(myclass)

# 輸出定義在主檔案裡的乙個類

#使用myclass建立乙個物件

mc = myclass(

)mc1 = myclass(

)print

(mc,

type

(mc)

)# 輸出表明mc是由myclass建立的乙個物件(例項)

# isinstance()用來檢查乙個物件是否是乙個類的例項

r =isinstance

(mc,myclass)

print

(r)# true

類也是乙個type型別的物件,類就是用來建立物件的物件。

可以向物件中新增變數,物件中的變數稱之為屬性

語法:物件.屬性名 = 屬性值

class

myclass

:pass

print(id

(myclass)

,type

(myclass)

)# 現在通過myclass建立的物件都是空物件

mc = myclass(

)mc.name =

'葫蘆娃'

# mc變數對應的物件值為 name = 葫蘆娃

mc2 = myclass(

)#print(mc2.name) # 報錯

mc2.name =

'鋼鐵俠'

print

(mc2.name)

• 類和物件都是對現實生活中事物的抽象

• 事物包含兩部分

• 1. 資料(屬性)

• 2. 行為(方法)

# 定義乙個人類

class

person()

:# **塊,可以定義變數和函式

# 定義的變數,成為所有例項物件的公共屬性

# 所有例項都可以訪問這些變數

# 呼叫變數 物件.屬性名

name =

'葫蘆娃'

# 類中定義的函式稱為方法,成為所有例項物件的公共方法

# 所有例項都可以訪問這些方法

# 呼叫方法 物件.方法名()

defspeak

(a):

print

('同學們好'

)p1 = person(

)p2 = person(

)print

(p1.name)

print

(p2.name)

p1.speak(

)p2.speak(

)

• 方法呼叫和函式呼叫的區別:

如果是函式呼叫,呼叫時有幾個形參,就會傳遞幾個實參;

如果是方法呼叫,預設傳遞乙個引數,所以方法中至少得有乙個形參。

• 在類**塊中,我們可以定義變數和函式

• 變數會成為該類例項的公共屬性,所有的該例項都可以通過 物件.屬性名的形式訪問

• 函式會成為該類例項的公共方法,所有該類例項都可以通過 物件.方法名的形式訪問

# 定義乙個人類

class

person()

:# **塊,可以定義變數和函式

# 定義的變數,成為所有例項物件的公共屬性

# 所有例項都可以訪問這些變數

# 呼叫變數 物件.屬性名

name =

'葫蘆娃'

# 類中定義的函式稱為方法,成為所有例項物件的公共方法

# 所有例項都可以訪問這些方法

# 呼叫方法 物件.方法名()

defspeak

(a):

print

('同學們好'

)p1 = person(

)p2 = person(

)print

(p2.name)

p1.name =

'鋼鐵俠'

print

(p1.name)

# 鋼鐵俠

類中定義的屬性和方法都是公共的,任何該類例項都可以訪問。

呼叫變數 物件.屬性名

呼叫方法 物件.方法名()

• 屬性和方法的查詢流程:

當我們呼叫乙個物件的屬性時,解析器會先在當前的物件中尋找是否還有該屬性,如果有,則直接返回當前的物件的屬性值。如果沒有,則去當前物件的類物件中去尋找,如果有則返回類物件的屬性值。如果沒有就報錯。

類物件和例項物件都可以儲存屬性和方法:

如果該屬性和方法是所有例項共享的,儲存在類物件中;

如果該屬性和方法是某些例項獨享的,儲存在例項物件中;

一般情況下屬性儲存在例項物件中,而方法需要儲存到類物件中。

self在定義時需要定義,但是在呼叫時會自動傳入。

self的名字並不是規定死的,但是最好還是按照約定是用self

self總是指呼叫時的類的例項

# 定義乙個人類

class

person()

: name =

'葫蘆娃'

# 方法被呼叫時,解析器會自動傳遞乙個實參給形參,第乙個形參被稱為self

defspeak

(self)

:print

('你好,我是%s'

%self.name)

print

(self)

p1 = person(

)p2 = person(

)p1.name =

'鋼鐵俠'

p2.name =

'綠巨人'

p1.speak(

)# 你好,我是鋼鐵俠

p2.speak(

)# 你好,我是綠巨人

Python學習之路11 函式

形式如下 def 函式名 引數 函式體傳遞實參 位置實參 基於形參的順序指定實參值 關鍵字實參 無需考慮函式呼叫中的實參順序,按形參名指定對應的實參值 1 傳遞預設值 要指定預設值的形參需要放在後面 def 函式名 引數1,引數2,引數3 預設值 函式體2 傳遞任意數量的實參 使用 引數名 來對應任...

python 入門之路(3)

1.1 表示式 由數字 算符 數字分組符號 自由變數和約束變數等以求得數值的有意義排列方法所得的組合 其特點包括表示式一般僅僅用於計算一些結果,不會對程式產生實質性的影響 如果在互動模式中輸入乙個表示式,直譯器會自動將表示式的結果輸出 如在pycharm中輸入 2 3print 2 3 1.2 語句...

Python入門之路(14)

屬性 類屬性,直接在類中定義的屬性是類屬性 類屬性可以通過類或類的例項訪問到。但是類屬性只能通過類物件來修改,無法通過例項物件修改 例項屬性 通過例項物件新增的屬性屬於例項屬性 例項屬性只能通過例項物件來訪問和修改,類物件無法訪問修改 方法 在類中定義,以self為第乙個引數的方法都是例項方法 例項...