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__方法。
最终,输出如下:
ab<method-wrapper '__str__' of str object at 0x0000019167F2AEF0>ba1
文章推荐
-
Python - 检查字符串中的所有字符是否都是字母数字?
要检查字符串中的所有字符是否都是字母数字,我们也可以使用 Python 和 Regex 中的 isalnum() 方法。...
Python
35秒前 0 -
高级Python元编程:动态代码生成和反射
Python 是一种灵活的编程语言,为开发人员提供了广泛的功能和工具。其强大的功能包括元编程——一种先进的技术,使开发人...
Python
1分钟前 0 -
如何在Python中实现梯度下降算法以寻找局部最小值?
梯度下降是机器学习中一种重要的优化方法,用于最小化模型的损失函数。通俗地说,它需要反复改变模型的参数,直到找到最小化损失...
Python
3分钟前 0 -
Python程序删除数组中的重复元素
数组是相同数据类型的元素的集合,数组中的每个元素都由一个索引值来标识。它是一种最简单的数据结构,其中每个数据元素只需使用...
Python
4分钟前 0 -
使用Networxx模块的超链接诱导主题搜索(HITS)算法- Python
超链接诱导主题搜索(HITS)算法是一种用于网络链接分析的流行算法,特别是在搜索引擎排名和信息检索中。 HITS 通过分...
Python
4分钟前 0
最新文章
- Python - 检查字符串中的所有字符是否都是字母数字? 35秒前
- 高级Python元编程:动态代码生成和反射 1分钟前
- 如何在Python中实现梯度下降算法以寻找局部最小值? 3分钟前
- Python程序删除数组中的重复元素 4分钟前
- 使用Networxx模块的超链接诱导主题搜索(HITS)算法- Python 4分钟前
- 使用索引列表在Python中查找元素的乘积 5分钟前
- 在Python中打印字符串的所有子序列 5分钟前
- 使用Python从字符串的末尾删除给定的子字符串 6分钟前
- 2020年适用于Linux程序员的10个最佳Python集成开发环境 7分钟前
- 获取字典中的第一个和最后一个元素的Python程序 7分钟前