????.jpg
目錄
一舟奠、 dir 內(nèi)置函數(shù)
二鼻种、類的語(yǔ)法
2.1 類的語(yǔ)法格式
2.2 創(chuàng)建對(duì)象
2.3 初始化方法
2.4 在初始化方法內(nèi)部定義屬性
2.5 自定義初始化方法
2.6__del__
方法
2.7__str__
方法
一、 dir 內(nèi)置函數(shù)
提示 __方法名__
格式的方法是 Python
提供的 內(nèi)置方法 / 屬性呕童,稍后會(huì)給大家介紹一些常用的內(nèi)置方法 / 屬性
方法名 | 作用 |
---|---|
__new__ |
創(chuàng)建對(duì)象時(shí)声登,會(huì)被 自動(dòng) 調(diào)用 |
__init__ |
對(duì)象被初始化時(shí)愚铡,會(huì)被 自動(dòng) 調(diào)用 |
__del__ |
對(duì)象被從內(nèi)存中銷毀前,會(huì)被 自動(dòng) 調(diào)用 |
__str__ |
返回對(duì)象的描述信息幔摸,print 函數(shù)輸出使用 |
二摸柄、類的語(yǔ)法
2.1 類的語(yǔ)法格式
class 類名:
def 方法1(self, 參數(shù)列表):
# pass表示占位符 保證程序的代碼結(jié)構(gòu)正確 pass關(guān)鍵字不會(huì)執(zhí)行任何操作
pass
def 方法2(self, 參數(shù)列表):
pass
注意:
類名的命名規(guī)則要符合大駝峰命名法
2.2 創(chuàng)建對(duì)象
- 當(dāng)一個(gè)類定義完成之后,要使用這個(gè)類來(lái)創(chuàng)建對(duì)象既忆,語(yǔ)法格式如下:
對(duì)象變量 = 類名()
2.3 初始化方法
- 當(dāng)使用
類名()
創(chuàng)建對(duì)象時(shí)驱负,會(huì) 自動(dòng) 執(zhí)行以下操作:- 為對(duì)象在內(nèi)存中 分配空間 —— 創(chuàng)建對(duì)象
- 為對(duì)象的屬性 設(shè)置初始值 —— 初始化方法(
init
)
- 這個(gè) 初始化方法 就是
__init__
方法嗦玖,__init__
是對(duì)象的*內(nèi)置方法
__init__
方法是 專門(mén) 用來(lái)定義一個(gè)類 具有哪些屬性的方法!
class Chicken:
def __init__(self):
print("這是一個(gè)初始化方法")
def eat(self):
print("%s愛(ài)吃肉" % (self.name))
# 使用類名()創(chuàng)建對(duì)象的時(shí)候跃脊,會(huì)自動(dòng)調(diào)用初始化方法 __init__
cock = Chicken()
2.4 在初始化方法內(nèi)部定義屬性
- 在
__init__
方法內(nèi)部使用self.屬性名 = 屬性的初始值
就可以 定義屬性 - 定義屬性之后宇挫,再使用
Chicken
類創(chuàng)建的對(duì)象,都會(huì)擁有該屬性
class Chicken:
def __init__(self):
# 定義用 Chicken 類創(chuàng)建的貓對(duì)象都有一個(gè) name 的屬性
self.name = "大公雞"
def eat(self):
print("%s愛(ài)吃肉" % (self.name))
cock = Chicken("公雞")
cock.eat()
2.5 自定義初始化方法
- 在開(kāi)發(fā)中酪术,如果希望在 創(chuàng)建對(duì)象的同時(shí)器瘪,就設(shè)置對(duì)象的屬性,可以對(duì)
__init__
方法進(jìn)行 自定義- 把希望設(shè)置的屬性值拼缝,定義成
__init__
方法的參數(shù) - 在方法內(nèi)部使用
self.屬性 = 形參
接收外部傳遞的參數(shù) - 在創(chuàng)建對(duì)象時(shí)娱局,使用
類名(屬性1, 屬性2...)
調(diào)用
- 把希望設(shè)置的屬性值拼缝,定義成
class Chicken:
def __init__(self,name):
self.name = name
def eat(self):
print("%s愛(ài)吃肉" % (self.name))
cock = Chicken("公雞")
cock.eat()
hen = Chicken("母雞")
hen.eat()
案例小結(jié)
由 哪一個(gè)對(duì)象 調(diào)用的方法,方法內(nèi)的 self
就是 哪一個(gè)對(duì)象的引用
圖片.png
2.6 __del__
方法
-
在
Python
中- 當(dāng)使用
類名()
創(chuàng)建對(duì)象時(shí)咧七,為對(duì)象 分配完空間后衰齐,自動(dòng) 調(diào)用__init__
方法 - 當(dāng)一個(gè) 對(duì)象被從內(nèi)存中銷毀 前,會(huì) 自動(dòng) 調(diào)用
__del__
方法
- 當(dāng)使用
-
應(yīng)用場(chǎng)景
-
__init__
改造初始化方法继阻,可以讓創(chuàng)建對(duì)象更加靈活 -
__del__
如果希望在對(duì)象被銷毀前耻涛,再做一些事情,可以考慮一下__del__
方法
-
-
生命周期
- 一個(gè)對(duì)象從調(diào)用
類名()
創(chuàng)建瘟檩,生命周期開(kāi)始 - 一個(gè)對(duì)象的
__del__
方法一旦被調(diào)用抹缕,生命周期結(jié)束 - 在對(duì)象的生命周期內(nèi),可以訪問(wèn)對(duì)象屬性墨辛,或者讓對(duì)象調(diào)用方法
- 一個(gè)對(duì)象從調(diào)用
# 定義類和方法
class Dog:
# 自定義初始化方法
def __init__(self,name):
self.name = name
def eat(self):
print("%s在吃東西" %(self.name))
def __del__(self):
print("del")
# 創(chuàng)建對(duì)象
dog = Dog("大灰灰")
dog.eat()
print(dog)
# del 關(guān)鍵字可以刪除一個(gè)對(duì)象
del dog
2.7 __str__
方法
- 在
Python
中卓研,使用print
輸出 對(duì)象變量,默認(rèn)情況下睹簇,會(huì)輸出這個(gè)變量 引用的對(duì)象 是 由哪一個(gè)類創(chuàng)建的對(duì)象奏赘,以及 在內(nèi)存中的地址(十六進(jìn)制表示) - 如果在開(kāi)發(fā)中,希望使用
print
輸出 對(duì)象變量 時(shí)太惠,能夠打印 自定義的內(nèi)容磨淌,就可以利用__str__
這個(gè)內(nèi)置方法了
# 定義類和方法
class Dog:
# 自定義初始化方法
def __init__(self,name):
self.name = name
def eat(self):
print("%s在吃東西" %(self.name))
def __str__(self):
# 必須返回字符串
return "我是:%s" % self.name
# 創(chuàng)建對(duì)象
dog = Dog("大灰灰")
dog.eat()
print(dog)