Python: Python中关于类和函数的初体验之"__init__"和"__str__"不是"_init_"和"_str_"
May 28, 2015
刚刚接触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 msg 12 13 mlp = PiCat(" Lianpi Mao >" ,int (GetNowYear())-1990 ) 14 15 print mlp.name 16 print mlp
这个程序很简单,就是让猫脸屁说一下自己的名字,并做一下自我介绍。
坑的就是那两个”_>”啊!!!
是 __str__ 而不是 _str_ !!!
是 __init__ 而不是 _init_ !!!
0 Comments