__getattr__(): 當調用不存在的屬性時調用此方法來嘗試獲得屬性
__init__(): 實例化類時,會自動調用此方法
__str__():打印實例時,會自動調用此方法,用于自定義輸出信息
__repr__():為調試服務的
區別是__str__()返回用戶看到的字符串,而__repr__()返回程序開發者看到的字符串,可使用__repr__ = __str__使得打印的信息一致
__iter__():返回一個迭代對象,使得該對象可用于for ... in循環,類似list或tuple那樣
__next__():迭代對象時調用
__getattr__():調用類的方法或屬性時,如果不存在,則會自動調用此方法
__call__():調用對象不存在的方法時,會自動調用此方法
callable(objName): 判斷對象是否可調用
__getitem__():像list那樣按照下標取出元素,需要實現__getitem__()方法
__setitem__():把對象視作list或dict來對集合賦值
__delitem__():用于刪除某個元素
Python的class允許定義許多定制方法,請參考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)