Pthon魔术方法(Magic Methods)-可视化
Pthon魔术方法(Magic Methods)-可视化
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.关于可视化的魔术方法简介
__str__:
str()函数,format()函数,print()函数调用,需要返回对象的字符串表达式,即会默认调用该魔术方法。
如果没有定义该方法,就去调用"__repr__"方法返回字符串表达式,如果"__repr__"没有定义,就直接返回对象的内存地址信息。 __repr__:
内建函数repr()对一个对象获取字符串表达。
调用"__repr__"方法返回字符串表达,如果"__repr__"也没有定义,就直接返回object的定义就是显示内存地址信息。 __bytes__:
bytes()函数调用,返回一个对象的bytes表达,即返回bytes对象。
二.案例展示
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie class Person:
def __init__(self,name,age=18):
self.name = name
self.age = age def __repr__(self):
return "repr:{},{}".format(self.name,self.age) def __str__(self):
return "str:{},{}".format(self.name,self.age) def __bytes__(self):
import json
return json.dumps(self.__dict__).encode() p1 = Person("Jason Yin") print(p1) #print函数默认调用的是str方法 print("{}".format(p1)) #字符串的format方法也是调用"__str__"方法 print([p1]) #使用引用类型存储p1时,发现调用的时"__repr__"方法 print([str(p1)]) #我们可以显示使用str函数去调用"__str__"魔术方法,如果没有"__str__"方法就去找"__repr__"方法 print(bytes(p1)) #调用的是"__bytes__"方法 """
温馨提示:
在学习完可视化方法后,同学们应该明白之前我们看到所有的字符串输出其实都是别人封装好的魔术方法,比如:print(1,'1',['1',1])
因此,咱们不能通过判断是否带引号来判断输出值的类型,类型判断需要使用type或者isinstance.
""" #以上代码执行结果如下:
str:Jason Yin,18
str:Jason Yin,18
[repr:Jason Yin,18]
['str:Jason Yin,18']
b'{"name": "Jason Yin", "age": 18}'
Pthon魔术方法(Magic Methods)-可视化的更多相关文章
- php中的魔术方法(Magic methods)和魔术常亮
PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...
- Pthon魔术方法(Magic Methods)-描述器
Pthon魔术方法(Magic Methods)-描述器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.描述器概述 1>.描述器定义 Python中,一个类实现了&quo ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- Pthon魔术方法(Magic Methods)-上下文管理
Pthon魔术方法(Magic Methods)-上下文管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上下文管理方法 __enter__: 进入与此对象相关的上下文.如果 ...
- Pthon魔术方法(Magic Methods)-可调用对象
Pthon魔术方法(Magic Methods)-可调用对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.可调用对象方法 __call__: 类中定义一个该方法,实例就可以像 ...
- Pthon魔术方法(Magic Methods)-容器相关方法
Pthon魔术方法(Magic Methods)-容器相关方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.容器相关方法汇总 __len__: 内建函数len(),返回对象的 ...
- Pthon魔术方法(Magic Methods)-运算符重载
Pthon魔术方法(Magic Methods)-运算符重载 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python运算符对应的魔术方法 1>.比较运算符 <: ...
- Pthon魔术方法(Magic Methods)-bool
Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...
- Pthon魔术方法(Magic Methods)-hash
Pthon魔术方法(Magic Methods)-hash 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.hash方法 __hash__: 内建函数hash()调用的返回值,返 ...
随机推荐
- 【设计】Facebook的语调设计-做的珍惜
http://www.woshipm.com/pd/3206743.html 做的是真细呦
- 解决 Yii2 assets 不自动更新问题
问题描述:core 里的 Asset (AssetBundle)更新 js 或 css 时,更新内容没有直接同步到其他模块 -- 如果想节约时间,直接拖到文章底部看结果就好~ 一.项目目录结构(大概介 ...
- Min-Max容斥及其推广和应用
概念 Min-Max容斥,又称最值反演,是一种对于特定集合,在已知最小值或最大值中的一者情况下,求另一者的算法. 例如: $$max(a,b)=a+b-min(a,b) \\\ max(a,b,c)= ...
- (二)Java数据结构和算法——数组
一.数组的实现 上一篇博客我们介绍了一个数据结构必须具有以下基本功能: ①.如何插入一条新的数据项 ②.如何寻找某一特定的数据项 ③.如何删除某一特定的数据项 ④.如何迭代的访问各个数据项,以便进行显 ...
- XT交易所API
HTTPAPI xt为用户提供了一个简单的而又强大的API,旨在帮助用户快速高效的将xt交易功能整合到自己应用当中. API地址域名地址 域名地址:https://www.xt.com/ 使用说明 使 ...
- Docker Overview
Docker 是一个用于开发.交付和运行应用的开放平台,Docker 设计用来更快的交付你的应用程序.Docker 可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.D ...
- 2019年新加坡之行 Day 1
又到了公司每年一次的年度旅游,继前几年的香港.日本.韩国游后,今年公司选择了新加坡.由于之前曾在新加坡公司The Adventus Consultants工作过2年时间,所以对于这次重返新加坡,我还是 ...
- Swagger2生成后台的API文档
添加依赖: <!--Swagger2API生成--> <dependency> <groupId>io.springfox</groupId> < ...
- django使用https
根据以下内容总结了下: http://www.voidcn.com/article/p-xxdfvetx-da.html http://www.voidcn.com/article/p-ezmbnny ...
- JVM性能调优的6大步骤,及关键调优参数详解
JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考 对JVM内存的系统级 ...