面相物件基礎語法

2022-09-03 17:36:13 字數 4630 閱讀 4761

python中可以使用以下兩個方法驗證:

識別符號/資料後輸入乙個.,然後按下tab鍵,ipython會提示該物件能夠呼叫的方法列表

使用內建函式dir傳入識別符號/資料,可以檢視物件內的所有屬性及方法

提示__方法名__格式的方法是python提供的內建方法 / 屬性,稍後會給大家介紹一些常用的 內建方法 / 屬性

序號方法名

型別作用

01__new__

方法建立物件時,會被自動呼叫

02__init__

方法物件被初始化時,會被自動呼叫

03__del__

方法物件被從記憶體中銷毀前,會被自動呼叫

04__str__

方法返回物件的描述資訊print函式輸出使用

提示利用好dir()函式,在學習時很多內容就不需要死記硬背了

物件導向更大封裝,在乙個類中 封裝 多個方法,這樣通過這個類建立出來的物件,就可以直接呼叫這些方法了

class 類名:

def 方法1(self, 引數列表):

pass

def 方法2(self, 引數列表):

pass

注意:類名的 命名規則 要符合大駝峰命名法

物件變數 = 類名()
需求分析定義乙個貓類cat定義兩個方法eatdrink

按照需求 —— 不需要定義屬性

"""這是乙個貓類"""

def eat(self):

print("小貓愛吃魚")

def drink(self):

print("小貓在喝水")

tom = cat()

tom.drink()

tom.eat()

引用概念的強調

在物件導向開發中,引用的概念是同樣適用的!

案例高階 —— 使用 cat 類再建立乙個物件

lazy_cat = cat()

lazy_cat.eat()

lazy_cat.drink()

提問:tomlazy_cat是同乙個物件嗎?

只需要在類的外部的**中直接通過.設定乙個屬性即可

tom.name = "tom"

...lazy_cat.name = "大懶貓"

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

改造**如下:

class cat:

def eat(self):

print("%s 愛吃魚" % self.name)

tom = cat()

tom.name = "tom"

tom.eat()

lazy_cat = cat()

lazy_cat.name = "大懶貓"

屬性錯誤:'cat' 物件沒有 'name' 屬性

提示物件應該包含有哪些屬性,應該封裝在類的內部

__init__方法是專門用來定義乙個類具有哪些屬性的方法

cat中增加__init__方法,驗證該方法在建立物件時會被自動呼叫

class cat:

"""這是乙個貓類"""

def __init__(self):

print("初始化方法")

class cat:

def __init__(self):

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

# 定義用 cat 類建立的貓物件都有乙個 name 的屬性

self.name = "tom"

def eat(self):

print("%s 愛吃魚" % self.name)

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

tom = cat()

tom.eat()

class cat:

def __init__(self, name):

print("初始化方法 %s" % name)

self.name = name

...tom = cat("tom")

...lazy_cat = cat("大懶貓")

...

序號

方法名型別

作用01

__del__

方法物件被從記憶體中銷毀前,會被自動呼叫

02__str__

方法返回物件的描述資訊print函式輸出使用

應用場景

生命週期

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)

# del 關鍵字可以刪除乙個物件

del tom

print("-" * 50)

注意:__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)

面相物件基礎

1.方法的重寫 1 發生在父子類中,方法名相同引數列表相同,為方法的重寫。2 重寫的方法被呼叫的時候看物件的型別。注意事項 重寫需要遵循 兩同,兩小,一大的原則 1 兩同 方法名稱相同,引數列表相同 2 兩小 基本資料型別的方法的返回值必須相同。引用資料型別可以小於或者等於父類的資料型別。子類方法中...

面相物件 面相過程

oc是物件導向 c面向過程 區別 面向過程 關注解決問題需要的步驟 物件導向 關注解決問題需要的物體 術語 面向過程 procedure oriented 物件導向 object oriented 物件導向程式設計 object oriented programming 類 物件 成員變數 區別 類...

面相物件,關於物件

1 萬物皆物件。將物件看做是乙個特別的變數,它是乙個可以儲存資料的東西,除此之外,你還可以要求它在自身上進行操作。理論上而言,萬物皆物件,可以抽取待求解的任何概念化構件,例如貓 狗 建築物 衣服等等。我們可以將他們表示成為程式中的物件。2 程式是物件的集合,他們通過傳送訊息來告知彼此所需要做的。要想...