python的魔法方法类似于C++中的重载,在python中采用双下划线包围函数名的方法来实现对已有函数的重写,实现开发者想要的功能。python的魔法方法很多,这里直接可以参考https://fishc.com.cn/thread-48793-1-2.html总结的非常全面,这里不一一介绍。这篇博客主要是记录我学习过程遇到的问题,在这里总结一下__str__和__repr__两者的区别和联系。
问题的由来
直接上一个例子,由下图可以看到,当我们想打印一个类时,只能看到类名+object a
想法由来
今天写代码过程中遇到一个需求,计算一个list中数值为1的元素的个数,其中这个list的元素数值不是为0就是为1。
一开始想到的是写个方法来计算:
# 返回一个0,1数组中1的数量
def num_one(source_array):
count = 0
for x in source_array:
if x == 1:
count += 1
return count
嗯好吧,然后觉得这是最low的方法了,就在想强大的python可不可以一行代码就做到以上的效果,然后