博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
__str__ __repr__ 与 __format__
阅读量:4995 次
发布时间:2019-06-12

本文共 947 字,大约阅读时间需要 3 分钟。

# __str__ __repr__ 与 __format__class Foo:    def __init__(self, year, month, day):        self.year = year        self.month = month        self.day = day    def __str__(self):        return '改变了对象的字符串方式,默认为对象的内存地址'    def __repr__(self):        return '在控制台输出时(或没有__str__)的显示方式'    # __str__ 与 __repr__ 只能return字符串类型    def __format__(self, format_spec):        if not format_spec or format_spec not in format_dic:     # 此处判断用户是否传空参数或字典中没有的参数,并指定一个值            format_spec = 'm-d-y'        fm = format_dic[format_spec]    # 从字典format_dic中找到相应的格式        return fm.format(self)  # 返回显示的格式f1 = Foo(2018, 5, 8)print(f1)  # 相当于 str(f1) -> f1.__str__ 这样执行# 对于__str__ 和 __repr__ 都存在的话,print会先找__str__,如果没有__str__就执行__repr# 定义format显示方式的字典format_dic = {    'y-m-d': '{0.year}-{0.month}-{0.day}',    'm-d-y': '{0.month}-{0.day}-{0.year}'}print(format(f1))  # 当使用format方法时会调用__format__方法,并按我们定义的显示方式显示

 

转载于:https://www.cnblogs.com/dangrui0725/p/9470566.html

你可能感兴趣的文章
ArcGIS中的坐标系统定义与投影转换方法
查看>>
机械臂的碰撞检测资料
查看>>
[UnityShader基础]01.渲染队列
查看>>
字符串转整型C++
查看>>
随机生成红包算法
查看>>
Datatable get请求传参应用
查看>>
杭电1170
查看>>
3unit8
查看>>
kettle与各数据库建立链接的链接字符串
查看>>
【转】Apache Solr 访问权限控制
查看>>
PostgreSQL - 转义字符
查看>>
两步搞定一台电脑同时开启多个tomcat
查看>>
jQuery EasyUI弹出确认对话框(确认操作中.....)
查看>>
CentOS7 监控网络流量
查看>>
根据控件名称反射查找控件
查看>>
编写和执行C#代码的插件:CS-Script for Notepad++
查看>>
BZOJ3569: DZY Loves Chinese II(线性基构造)
查看>>
Android系统源码下载及使用(Android 14到19源码)
查看>>
绑定dropdownlist
查看>>
[LeetCode] Sudoku Solver
查看>>