python 物件導向1

2021-10-02 20:19:06 字數 4256 閱讀 9023

類 和 物件 是 物件導向程式設計的 兩個 核心概念

類, 是對一群具有 相同 特徵 或者 行為 的事物的乙個統稱,是抽象的,不能直接使用

特徵 被稱為 屬性

行為 被稱為 方法

類 就相當於製造飛機時的圖紙,是乙個 模板,是 負責建立物件的

物件 是 由類建立出來的乙個具體存在,可以直接使用

在程式開發中,應先有類,再有物件

方法名格式的方法是 python 提供的 內建方法 / 屬性』

函式,也是乙個方法

class

cat:

defeat

(self)

:print

('小貓愛吃魚'

)def

drink

(self)

:print

("小貓要喝水"

)# 建立貓物件 物件變數 = 類名

tom = cat(

)tom.eat(

)tom.drink(

)print

(tom)

結果-----

小貓愛吃魚

小貓要喝水

<main.cat object at 0x103c124a8>

cat 表示 tom 引用了哪個物件(這裡說明引用了貓物件)

at 0x103c124a8 說明貓物件存放的位址

class

cat:

defeat

(self)

:print

('小貓愛吃魚'

)def

drink

(self)

:print

("小貓要喝水"

)# 建立貓物件 物件變數 = 類名

tom = cat(

)tom.eat(

)tom.drink(

)print

(tom)

print

("------------------"

)# 建立新的貓物件

lazy_cat = cat(

)lazy_cat.eat(

)lazy_cat.drink(

)print

(lazy_cat)

小貓愛吃魚

小貓要喝水

<main.cat object at 0x1015204e0>

小貓愛吃魚

小貓要喝水

<main.cat object at 0x1015205c0>

2個輸出的位址不一樣,說明了 每次物件引用的時候,都會新建立類乙個位址

由 哪乙個物件 呼叫的方法,方法內的 self 就是 哪乙個物件的引用

在類封裝的方法內部,self 就表示 當前呼叫方法的物件自己

呼叫方法時,程式設計師不需要傳遞 self 引數

在方法內部

–>可以通過 self. 訪問物件的屬性

–>可以通過 self. 呼叫其他的物件方法

class

cat:

def__inint__

(self)

:print

("這是乙個初始化方法"

)# 當使用 類名() 建立物件時,會自動執行以下操作

# 1.為物件在記憶體中 分配空間———— 建立物件

# 2.為物件的屬性 設定初始值———— 初始化方法(init)

#tom = cat(

)

class

cat:

def__init__

(self)

:print

("這是乙個初始化方法"

)# self.屬性名 = 屬性的初始值

self.name =

"tom"

# 使用類名字()建立物件的時候,會自動呼叫初始化方法__init__

tom = cat(

)print

(tom.name)

class

cat:

def__init__

(self, new_name)

:print

("這是乙個初始化方法"

)# self.屬性名 = 屬性的初始值

# self.name = "tom"

self.name = new_name

defeat(self)

:print

("%s 愛吃魚"

% self.name)

# 使用類名字()建立物件的時候,會自動呼叫初始化方法__init__

tom = cat(

"tom"

)tom.eat(

)lazy_cat = cat(

"大懶貓"

)lazy_cat.eat(

)

del方法

class

cat:

def__init__

(self, new_name)

: self.name = new_name

print

("%s 來了"

% self.name)

def__del__

(self)

:print

("%s 去了"

% self.name)

# tom 是乙個全域性變數

tom = cat(

"tom"

)print

(tom.name)

str方法

使用前

class

cat:

def__init__

(self, new_name)

: self.name = new_name

print

("%s 來了"

% self.name)

def__del__

(self)

:print

("%s 已經離開世界了"

% self.name)

# def __str__(self):

# # 必須返回乙個字串

# return "我是小貓[%s]" % self.name

tom = cat(

"tom"

)print

(tom)

tom 來了

<main.cat object at 0x103002438>

tom 已經離開世界了

使用後

class

cat:

def__init__

(self, new_name)

: self.name = new_name

print

("%s 來了"

% self.name)

def__del__

(self)

:print

("%s 已經離開世界了"

% self.name)

def__str__

(self)

:# 必須返回乙個字串

return

"我是小貓[%s]"

% self.name

tom = cat(

"tom"

)print

(tom)

tom 來了

我是小貓[tom]

tom 已經離開世界了

在 python 中,使用 print 輸出 物件變數,預設情況下,

會輸出這個變數 引用的物件 是 由哪乙個類建立的物件,

以及 在記憶體中的位址(十六進製制表示)

如果在開發中,希望使用 print 輸出 物件變數 時,

能夠列印 自定義的內容,就可以利用 __str__ 這個內建方法了

Python 物件導向1 物件導向介紹

一 無論用什麼形式來程式設計,我們都要明確記住以下原則 1 寫重複 是非常不好的低階行為 2 你寫的 需要經常變更,寫 一定要遵循易讀,易改的原則 3 函式程式設計與oop 物件導向 的主要區別就是oop可以使程式更加容易擴充套件和易更改。二 物件導向三大特性 1 封裝 封裝可以隱藏實現細節,使得 ...

python物件導向1

征服python 3 1 類的定義與使用 class book 類的定義 name kk pages 0 print book.name a book 類的訪問 a.name book1 a物件的name的訪問 print a.name b book b.name book2 print b.nam...

Python基礎 物件導向 1

魔法函式 物件導向概述 幾個名詞 類和物件的概念 類的內容,應該具有兩個內容 類的基本實現 如何宣告乙個類 可以通過缺省內置變數檢查類和物件的所有成員 類的所有成員檢查 定義乙個學生類,用來形容學生 class student 乙個空類,pass代表跳過 pass必須有 pass 定義乙個物件 zs...