Python类方法中__getattribute__与__str__方法的冲突:如何调用自定义的__str__方法?

ID:21043 / 打印

python类方法中__getattribute__与__str__方法的冲突:如何调用自定义的__str__方法?

python类方法相关疑难解答

您希望通过调用getattribute来查找str的方法,但它却直接调用了str的方法。如何解决这个问题呢?

为了解决这一问题,需要在类中定义一个__str__方法。默认情况下,print会调用type(object).__str__(object)来将对象转换为字符串,而不会调用自定义的__getattribute__方法。

因此,如下所示在pointer类中定义一个__str__方法:

立即学习“Python免费学习笔记(深入)”;

class pointer:    # ... 原有代码 ...    def __str__(self):     return str(self.__value)

这样,当调用print(s)时,将调用自定义的__str__方法,从而使用pointer类的__getattribute__方法。

最终,输出如下:

a b <method-wrapper '__str__' of str object at 0x0000019167F2AEF0> b a1
上一篇: Python 函数在循环中递归调用时,为什么会出现无法正常运行的问题?
下一篇: Go 语言为什么要使用晚绑定?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。