1.Python特殊函数__call__()
在Python中,函数其实是一个对象,比如说:
在上面的代码中,由于f可以被调用,所以,f被称为可调用对象。
所有函数都是可调用对象,一个类实例也可以变成一个可调用对象,只需要我们自己去实现一个特殊方法__call__():
我们为类Person实现了__call__函数,从而使得类Person的实例p可以作为函数进行调用
2.__str__和__repr__
直接用例子进行说明:
如果我们不设置__str__函数以及__repr__函数的话,则会得到如上的输出,打印得到的对象并不是很友好,显示的是对象的内存地址。
如果我们设置了__str__函数,则会得到如下结果:
此时我们调用print函数会按照我们指定的输出格式进行输出,但是直接输出对象显示的仍然是对象的内存地址。
那如果我们实现了__repr__函数呢?
此时,我们不论是直接输出对象还是调用print函数,都会得到我们所指定的输出结果,恩,很友好,至少在用户体验上,如果能够和标准库的使用方法一致,那么就最好不过了。