python之面向对象02
在python中方法名如果是__xxxx__()
的,那么就有特殊的功能,因此叫做“魔法”方法
1. __init__()方法
1 class Cat: 2 def __init__(self,newname,newage): 3 self.name = newname 4 self.age = newage 5 6 def eat(self): 7 print("%s在吃鱼。"%self.name) 8 def drink(self): 9 print("%s在喝奶茶。"%self.name) 10 def introduce(self): 11 print("名字是:%s,年龄是:%d"%(self.name,self.age)) 12 tom = Cat("汤姆",5) 13 tom.eat() 14 tom.drink() 15 tom.introduce()
总结
__init__()
方法,在创建一个对象时默认被调用,不需要手动调用__init__(self)
中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么__init__(self)
中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)
__init__(self)
中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
2. __str__()方法
1 class Cat: 2 def __init__(self,newname,newage): 3 self.name = newname 4 self.age = newage 5 def __str__(self): 6 # 返回一个对象的描述信息 7 return "名字是:%s,年龄是:%d"%(self.name,self.age) 8 9 # def eat(self): 10 # print("%s在吃鱼。"%self.name) 11 # def drink(self): 12 # print("%s在喝奶茶。"%self.name) 13 # def introduce(self): 14 # print("名字是:%s,年龄是:%d"%(self.name,self.age)) 15 tom = Cat("汤姆",5) 16 print(tom) 17 # tom.eat() 18 # tom.drink() 19 # tom.introduce()
总结:
- 当使用print输出对象的时候,只要自己定义了
__str__(self)
方法,那么就会打印从在这个方法中return的数据。 __str__
方法需要返回一个字符串,当做这个对象的描写。
代码成就万世基积沙镇海
梦想永在凌云意意气风发