在类中有一些特殊的方法具有特殊的意义,比如__init__
和__del__
方法,它们的重要性我们已经学习过了。
一般说来,特殊的方法都被用来模仿某个行为。例如,如果你想要为你的类使用x[key]
这样的索引操作(就像列表和元组一样),那么你只需要实现__getitem__()
方法就可以了。想一下,Python就是对list
类这样做的!
下面这个表中列出了一些有用的特殊方法。如果你想要知道所有的特殊方法,你可以在《Python参考手册》中找到一个庞大的列表。
表15.1 一些特殊的方法
名称 | 说明 |
---|---|
__init__(self,...) | 这个方法在新建对象恰好要被返回使用之前被调用。 |
__del__(self) | 恰好在对象要被删除之前调用。 |
__str__(self) | 在我们对对象使用print 语句或是使用str() 的时候调用。 |
__lt__(self,other) | 当使用 小于 运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。 |
__getitem__(self,key) | 使用x[key] 索引操作符的时候调用。 |
__len__(self) | 对序列对象使用内建的len() 函数的时候调用。 |
例如:“
class Person:
def __getitem__(self,key):
self.key=key;
print self.key
x=Person();
>>x[1] 输出1
>>x[2]输出2
>>x["abc"] 输出"abc"
def __str__(self):
return 'this is a string'
print x 或str(x)输出 'this is a string'.
python魔术方法大全:
http://woodpecker.org.cn/diveintopython3/special-method-names.html