python class自身返回值研究
2021/10/5 11:11:14
本文主要是介绍python class自身返回值研究,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在python中,如果你写了这样一串代码:
import datetime a = datetime.date(2021, 9, 1) b = "2021-09-01" print(a, b) print([a, b]) print(type(a), type(b))
你会发现 a 是一个datetime.date的类
而b是个字符串
但在输出时,却出现了这样的结果
2021-09-01 2021-09-01 [datetime.date(2021, 9, 1), '2021-09-01'] <class 'datetime.date'> <class 'str'>
可以发现,在a单独输出时,竟然输出了字符串!
而a的类型依然是datetime.date的类
这是怎么回事呢
要知道,在python中定义一个类,输出这个类会输出这个类的信息
class test: pass a = test() print(a)
输出:
<__main__.test object at 0x000001B344057070>
那为什么datetime.date返回的不是以上输出的,而是一个字符串呢?
我就打开了datetime.py一看究竟
结果发现了几行代码
可以看到使用了__repr__
通过我仔细的研究
我发现__repr__可以修改class的输出信息
class test: def __repr__(self): return "This is a class" a = test() print(a)
输出:
This is a class
又回到开头的问题
可以看到在数组输出是已经可以输出__repr__修改过的信息
但是在单独输出是,还是输出了与__repr__不同的信息
于是我又打开了datetime.py
看到了__str__可以定义class的格式
不过__str__需要赋值一个函数的名称
class test: def __repr__(self): return "This is a class" def make(self): return "You make a class" __str__ = make a = test() print(a)
输出:
You make a class
总结
从datetime的发现中学到了很多关于class的更深入的使用
可以使用__repr__和__str__设置class的基本信息
这篇关于python class自身返回值研究的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享