400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > python > 【Python基礎(chǔ)知識(shí)】Python類的魔法方法和靜態(tài)方法

【Python基礎(chǔ)知識(shí)】Python類的魔法方法和靜態(tài)方法

  • 發(fā)布: 優(yōu)就業(yè)it培訓(xùn)
  • 來源:優(yōu)就業(yè)
  • 2021-06-18 18:17:07
  • 閱讀()
  • 分享
  • 手機(jī)端入口

1、類中的魔法方法

魔法方法是類或?qū)嵗谔厥馇闆r下自動(dòng)執(zhí)行的方法。魔法方法除了前文已經(jīng)介紹過的__init__()構(gòu)造方法外,還有__str__()打印方法和__del__()析構(gòu)方法。

(1)__str__()打印方法

__str__()打印方法是打印描述實(shí)例信息的魔法方法,能夠打印指定的信息,并自動(dòng)執(zhí)行。其語(yǔ)法格式如下:

class 類名(object):

def __str__(self):

方法體

下面是一個(gè)使用__str__()打印方法的示例:

  1. >>> class Car(object): 
  2. ...     def __init__(self, brand, color): 
  3. ...         self.brand = brand 
  4. ...         self.color = color 
  5. ...         self.max_speed = 240 
  6. ...     def __str__(self): 
  7. ...         return '品牌是{},顏色是{},最大時(shí)速是{}。'.format(self.brand, self.color, self.max_speed) 
  8. ... 
  9. >>> falali = Car('法拉利''白色'
  10. >>> print(falali) 
  11. 品牌是法拉利,顏色是白色,最大時(shí)速是240。 

上述程序中,Car類的__init__()構(gòu)造方法接收小汽車的品牌和顏色參數(shù)賦值給實(shí)例屬性,并且初始化一個(gè)最高時(shí)速實(shí)例屬性;__str__()打印方法的功能是一個(gè)格式化字符串,描述了小汽車的屬性。使用Car類創(chuàng)建實(shí)例falali,并傳入兩個(gè)參數(shù),使用print()函數(shù)打印實(shí)例,此時(shí)自動(dòng)調(diào)用了Car類中的__str__()打印方法,打印字符串。

(2)__del__()析構(gòu)方法

__del__()析構(gòu)方法是在刪除實(shí)例時(shí)自動(dòng)運(yùn)行的魔法方法。其語(yǔ)法格式如下:

class 類名(object):

def __del__(self):

方法體

下面是一個(gè)使用__del__()析構(gòu)方法的示例:

  1. >>> class Car(object): 
  2. ...     def __init__(self, brand, color): 
  3. ...         self.brand = brand 
  4. ...         self.color = color 
  5. ...         self.max_speed = 240 
  6. ...     def __del__(self): 
  7. ...         print('{}要報(bào)廢了,要去車管所注銷了'.format(self.brand)) 
  8. ... 
  9. >>> falali = Car('法拉利''白色'
  10. >>> print(id(falali)) 
  11. 43663600 
  12. >>> del falali 
  13. 法拉利要報(bào)廢了,要去車管所注銷了 
  14. >>> print(id(falali)) 
  15. Traceback (most recent call last): 
  16.   File "", line 1in  
  17. NameError: name 'falali' is not defined 

上述程序中,Car類中定義了一個(gè)析構(gòu)方法,其功能是打印一個(gè)格式化字符串。當(dāng)使用Car類創(chuàng)建實(shí)例falali后,調(diào)用id()方法獲取falali實(shí)例的地址并打印;使用del falali刪除falali實(shí)例,此時(shí)自動(dòng)調(diào)用了Car類中的__del__()析構(gòu)方法,打印字符串;再次調(diào)用id()方法獲取falali實(shí)例的地址,Python解釋器提示出錯(cuò)了,falali名稱沒有被定義,這是因?yàn)閒alali實(shí)例已經(jīng)被刪除了。

2、類中的靜態(tài)方法

靜態(tài)方法是類中不對(duì)當(dāng)前屬性和方法進(jìn)行操作的方法。靜態(tài)方法的特點(diǎn)如下:

①靜態(tài)方法無隱含參數(shù)。

②無法通過self或cls調(diào)用屬性。

③使用@staticmethod裝飾。

靜態(tài)方法的語(yǔ)法格式如下:

@staticmethod

def 方法名(參數(shù)):

方法體

調(diào)用靜態(tài)方法有兩種方式,一種是采用“類名.方法名(參數(shù))”的形式;另一種是先實(shí)例化,再采用“實(shí)例名.方法名(參數(shù))”的形式:

  1. >>> class Test(): 
  2. ...     @staticmethod 
  3. ...     def info(): 
  4. ...         print('成功進(jìn)入靜態(tài)方法'
  5. ... 
  6. >>> Test.info()   # 第一種調(diào)用方式 
  7. 成功進(jìn)入靜態(tài)方法 
  8. >>> s = Test() 
  9. >>> s.info()   # 第二種調(diào)用方式 
  10. 成功進(jìn)入靜態(tài)方法 

下面比較一下靜態(tài)方法與類方法的相同點(diǎn)和不同點(diǎn)。

靜態(tài)方法與類方法的相同點(diǎn)如下:

①都可以在類內(nèi)調(diào)用。

②都可以通過實(shí)例調(diào)用。

靜態(tài)方法與類方法的不同點(diǎn)如下:

①靜態(tài)方法沒有默認(rèn)參數(shù),類方法第一個(gè)默認(rèn)參數(shù)為cls。

②靜態(tài)方法內(nèi)不能調(diào)用類屬性或?qū)嵗龑傩裕惙椒▋?nèi)只能調(diào)用類屬性和類方法。

文章“【Python基礎(chǔ)知識(shí)】Python類的魔法方法和靜態(tài)方法”已幫助

更多內(nèi)容

>>本文地址:http://www.028benet.com/zhuanye/2021/69063.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME

主站蜘蛛池模板: 免费看美女被靠到爽的视频| 成人免费高清完整版在线观看| 国产无吗一区二区三区在线欢| 国产精品亚洲欧美云霸高清| 亚洲精品自产拍在线观看动漫| 一级毛片**免费看试看20分钟 | 成人免费在线看片| 欧美三级中文字幕完整版| 国产超碰人人模人人爽人人喊| 亚洲精品视频免费看| 91欧美在线视频| 欧美精品v欧洲精品| 国产精品多p对白交换绿帽| 亚洲国产品综合人成综合网站| 三上悠亚一区二区观看| 男女一边摸一边做刺激的视频| 日韩免费a级在线观看| 国产女主播喷水视频在线观看| 亚洲精品中文字幕无码av| 91成人免费版| 最近手机版免费中文字幕| 国产成人av在线免播放观看| 久久免费看视频| 羞羞歪歪汗汗漫画| 小小视频最新免费观看| 人人妻人人玩人人澡人人爽 | 国产亚洲3p无码一区二区| 久久99精品久久水蜜桃| 美女扒开尿囗给男生桶爽| 日韩a在线播放| 国产一区二区精品久久岳| 丝瓜草莓www在线观看| 狼群影院www| 国产精品无码专区| 久久精品无码午夜福利理论片 | 欧美午夜片欧美片在线观看| 国产欧美日韩另类精彩视频| 亚洲国产精品自产在线播放| 97热久久免费频精品99| 欧美多人性受xxxx喷水| 国产伦精品一区二区三区免费迷|