Python 物件導向的程式設計

2021-10-04 21:59:14 字數 3773 閱讀 4517

什麼是物件?

物件導向(oop)

- 物件導向的程式語言

物件導向的程式設計思想,將所有的功能統一儲存到對應的物件中

比如,媽媽功能儲存到媽媽的物件中,孩子的功能儲存到孩子物件中

要使用某個功能,直接找到對應的物件即可

這種方式編寫的**,比較容易閱讀,並且比較易於維護,容易復用。

但是這種方式編寫,不太符合常規的思維,編寫起來稍微麻煩一點

簡單歸納一下,物件導向的思想

1.找物件

2.搞物件

a =

int(10)

# 建立乙個int類的例項

b =str

('hello'

)# 建立乙個str類的例項

print

(a ,

type

(a))

print

(b ,

type

(b))

定義乙個簡單的類

使用class關鍵字來定義類,語法和函式很像!

class 類名([父類]):

**塊

class

myclass()

:pass

print

(myclass)

<

class

'__main__.myclass'

>

使用myclass建立乙個物件

使用類來建立物件,就像呼叫乙個函式一樣

mc = myclass(

)# mc就是通過myclass建立的物件,mc是myclass的`例項`

mc_2 = myclass(

)mc_3 = myclass(

)mc_4 = myclass(

)

mc mc_2 mc_3 mc_4 都是myclass的例項,他們都是一類物件
isinstance()用來檢查乙個物件是否是乙個類的例項

現在我們通過myclass這個類建立的物件都是乙個空物件

也就是物件中實際上什麼都沒有,就相當於是乙個空的盒子

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

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

mc.name =

'孫悟空'

mc_2.name =

'豬八戒'

print

(mc_2.name)

使用類建立物件的流程(參考圖1)1.建立乙個變數

2.在記憶體中建立乙個新物件

3.將物件的id賦值給變數

一般情況下,屬性儲存到例項物件中

而方法需要儲存到類物件中

# 嘗試定義乙個表示人的類

class

person

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

# 在類中我們所定義的變數,將會成為所有的例項的公共屬性

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

name =

'swk'

# 公共屬性,所有例項都可以訪問

# 在類中也可以定義函式,類中的定義的函式,我們稱為方法

# 這些方法可以通過該類的所有例項來訪問

defsay_hello

(self)

:# 方法每次被呼叫時,解析器都會自動傳遞第乙個實參

# 第乙個引數,就是呼叫方法的物件本身,

# 如果是p1調的,則第乙個引數就是p1物件

# 如果是p2調的,則第乙個引數就是p2物件

# 一般我們都會將這個引數命名為self

# say_hello()這個方法,可以顯示如下格式的資料:

# 你好!我是 ***

# 在方法中不能直接訪問類中的屬性

print

('你好!我是 %s'

%self.name)

# 建立person的例項

p1 = person(

)p2 = person(

)# print(p2.name)

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

# 方法呼叫和函式呼叫的區別

# 如果是函式呼叫,則呼叫時傳幾個引數,就會有幾個實參

# 但是如果是方法呼叫,預設傳遞乙個引數,所以方法中至少要定義乙個形參

# 修改p1的name屬性

p1.name =

'豬八戒'

p2.name =

'沙和尚'

p1.say_hello(

)# '你好!我是 豬八戒'

p2.say_hello(

)# '你好!我是 沙和尚'

# del p2.name # 刪除p2的name屬性

# print(p1.name)

# print(p2.name)

建立物件的流程p1 = person()的執行流程

1.建立乙個變數

2.在記憶體中建立乙個新物件

3.init(self)方法執行

4.將物件的id賦值給變數

class 類名([父類]) :

公共的屬性...

# 物件的初始化方法

def __init__(self,...):

...# 其他的方法

def method_1(self,...):

...def method_2(self,...):

......

- 練習:

嘗試自定義乙個表示狗的類(dog)

屬性:name

agegender

height

...方法:

jiao()

yao()

run()

...

Python物件導向的程式設計

1 使用類名後跟一對圓括號來建立乙個物件 例項。2 python中的self等價於c 中的this指標。3 init 方法類似於c 中的constructor。4 del 方法類似於c 中的destructor。5 域是屬於乙個物件或類的變數。域有兩種型別 例項變數 物件的變數 和類變數 類的變數 ...

Python 物件導向的程式設計

table of contents 物件導向程式設計 類和物件是物件導向程式設計的兩個主要方面。類 建立乙個新型別,而 物件 是這個類的 例項 類的物件可以使用屬於類的變數和函式,類的變數和函式有兩種 屬於每個例項 類的物件或屬於類本身。就像 c 的類的靜態變數和函式一樣。python 有乙個變數指...

物件導向的程式設計(python)

計算兩點間的距離 class point object def init self,x 0,y 0 self.x,self.y x,y defdistance to self,other dx self.x other.x dy self.y other.y return dx dx dy dy 0...