类内方法:
1. __str__(self)
方法:
- 当使用print输出对象的时候,只要自己定义了
__str__(self)
方法,那么就会打印从在这个方法中return的数据 __str__
方法需要返回一个字符串,当做这个对象的描写
未重写__str__方法 | 重写__str__方法 |
| |
<__main__.Child2 object at 0x000001E167353B38> | 重构__str__方法(使用print函数输出的是__str__返回的字符串) |
2. __len__(self)
方法:获得类的长度
要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
未重写__len__方法 | 重写__len__方法 |
| |
TypeError: object of type 'Child2' has no len()
| 4(“name”的长度) |
3. __call__(self)
方法:
使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。
class CLanguage:
# 定义__call__方法
def __call__(self,name,add):
print("调用__call__()方法",name,add)
clangs = CLanguage()
clangs("C语言中文网","http://c.biancheng.net")
Python 中,凡是可以将 () 直接应用到自身并执行,都称为可调用对象。可调用对象包括自定义的函数、Python 内置函数以及本节所讲的类实例对象。
对于可调用对象,实际上“名称()”可以理解为是“名称.__call__()”的简写。仍以上面程序中定义的 clangs 实例对象为例,其最后一行代码还可以改写为如下形式: