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__方法需要返回一个字符串,当做这个对象的描写。

  

原文地址:https://www.cnblogs.com/ma1998/p/12400400.html