在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
定義兩個方法eat
和drink
按照需求 —— 不需要定義屬性
"""這是乙個貓類"""
def eat(self):
print("小貓愛吃魚")
def drink(self):
print("小貓在喝水")
tom = cat()
tom.drink()
tom.eat()
引用概念的強調
在物件導向開發中,引用的概念是同樣適用的!案例高階 —— 使用 cat 類再建立乙個物件
lazy_cat = cat()
lazy_cat.eat()
lazy_cat.drink()
提問:只需要在類的外部的**中直接通過tom
和lazy_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 程式是物件的集合,他們通過傳送訊息來告知彼此所需要做的。要想...