Pthon魔术方法(Magic Methods)-可视化
Pthon魔术方法(Magic Methods)-可视化
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.关于可视化的魔术方法简介
__str__: str()函数,format()函数,print()函数调用,需要返回对象的字符串表达式,即会默认调用该魔术方法。 如果没有定义该方法,就去调用"__repr__"方法返回字符串表达式,如果"__repr__"没有定义,就直接返回对象的内存地址信息。 __repr__: 内建函数repr()对一个对象获取字符串表达。 调用"__repr__"方法返回字符串表达,如果"__repr__"也没有定义,就直接返回object的定义就是显示内存地址信息。 __bytes__: bytes()函数调用,返回一个对象的bytes表达,即返回bytes对象。
二.案例展示
1 #!/usr/bin/env python 2 #_*_conding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie 5 6 class Person: 7 def __init__(self,name,age=18): 8 self.name = name 9 self.age = age 10 11 def __repr__(self): 12 return "repr:{},{}".format(self.name,self.age) 13 14 def __str__(self): 15 return "str:{},{}".format(self.name,self.age) 16 17 def __bytes__(self): 18 import json 19 return json.dumps(self.__dict__).encode() 20 21 p1 = Person("Jason Yin") 22 23 print(p1) #print函数默认调用的是str方法 24 25 print("{}".format(p1)) #字符串的format方法也是调用"__str__"方法 26 27 print([p1]) #使用引用类型存储p1时,发现调用的时"__repr__"方法 28 29 print([str(p1)]) #我们可以显示使用str函数去调用"__str__"魔术方法,如果没有"__str__"方法就去找"__repr__"方法 30 31 print(bytes(p1)) #调用的是"__bytes__"方法 32 33 """ 34 温馨提示: 35 在学习完可视化方法后,同学们应该明白之前我们看到所有的字符串输出其实都是别人封装好的魔术方法,比如:print(1,'1',['1',1]) 36 因此,咱们不能通过判断是否带引号来判断输出值的类型,类型判断需要使用type或者isinstance. 37 """ 38 39 40 41 #以上代码执行结果如下: 42 str:Jason Yin,18 43 str:Jason Yin,18 44 [repr:Jason Yin,18] 45 ['str:Jason Yin,18'] 46 b'{"name": "Jason Yin", "age": 18}'
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/11210866.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
标签:
Python基础知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2018-07-19 SHELL脚本编程-信号捕捉trap