__getattr__(): 當(dāng)調(diào)用不存在的屬性時(shí)調(diào)用此方法來(lái)嘗試獲得屬性
__init__(): 實(shí)例化類時(shí),會(huì)自動(dòng)調(diào)用此方法
__str__():打印實(shí)例時(shí)雳锋,會(huì)自動(dòng)調(diào)用此方法夸浅,用于自定義輸出信息
__repr__():為調(diào)試服務(wù)的
區(qū)別是__str__()返回用戶看到的字符串,而__repr__()返回程序開(kāi)發(fā)者看到的字符串,可使用__repr__ = __str__使得打印的信息一致
__iter__():返回一個(gè)迭代對(duì)象,使得該對(duì)象可用于for ... in循環(huán)片酝,類似list或tuple那樣
__next__():迭代對(duì)象時(shí)調(diào)用
__getattr__():調(diào)用類的方法或?qū)傩詴r(shí),如果不存在挖腰,則會(huì)自動(dòng)調(diào)用此方法
__call__():調(diào)用對(duì)象不存在的方法時(shí)雕沿,會(huì)自動(dòng)調(diào)用此方法
callable(objName): 判斷對(duì)象是否可調(diào)用
__getitem__():像list那樣按照下標(biāo)取出元素,需要實(shí)現(xiàn)__getitem__()方法
__setitem__():把對(duì)象視作list或dict來(lái)對(duì)集合賦值
__delitem__():用于刪除某個(gè)元素
Python的class允許定義許多定制方法猴仑,請(qǐng)參考Python的官方文檔
class Student(object):
def __init__(self, name):
self.name = name
def __str__(self):
return 'Student object (name: %s)' % self.name
__repr__ = __str__
print(Student('Michael'))
# Student object (name: Michael)
Student('Michael')
# Student object (name: Michael)