Python中關於類和函數的初體驗之"__init__"和"__str__"不是"_init_"和"_str_"

來源:互聯網
上載者:User

標籤:

剛剛接觸Python,今天就是怎麼也調試不過去了,上網上查直到晚上才查到一個有效資訊,真是坑啊!原來Python中的這些“魔法”方法的命名裡就有陷阱……

中的那兩個紅圈圈,一定要記住哦,這些Python內建的方法,比如str和init前後都是兩個"_",寫一個"_"按F5運行肯定有問題!

拿我的同事貓臉屁做個類,因為他最煩人,所以我學習的時候也會帶著他(二次元擊打松尾芭蕉桑):

 1 import time 2 def GetNowYear(): 3     return time.strftime("%Y",time.localtime(time.time())) 4  5 class PiCat: 6     def __init__(self,name,age): 7         self.name = name 8         self.age = age 9     def __str__(self):10         msg = "Hi, I‘m "+ self.name + ", I‘m " + str(self.age) +" years old."11         return msg12     13 mlp = PiCat("Lianpi Mao",int(GetNowYear())-1990)14 15 print mlp.name16 print mlp

這個程式很簡單,就是讓貓臉屁說一下自己的名字,並做一下自我介紹。

坑的就是那兩個"_"啊!!!

是 __str__ 而不是 _str_ !!!

是 __init__ 而不是 _init_ !!!

Python中關於類和函數的初體驗之"__init__"和"__str__"不是"_init_"和"_str_"

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.