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

  

posted @   侠客小飞  阅读(153)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示