在设计类的过程中,若想要类表现出一些特殊行为或者能够响应某些内建函数或操作符,那么就需要构建一些特殊方法。这些特殊方法的标识是方法名以双下划线(__)开头和结尾;除了常用的构造器__init__()外,还有一些常用的特殊方法:
参考:http://www.pythontip.com/blog/post/5225/
构造器(带一些可选的参数);通常用在设置不可变数据类型的子类
析构函数
可打印的字符串输出;内建str()及pring()函数
运行时的字符串输出;内建repr()函数及‘’操作符
长度;内建len()
获取属性;内建getattr();仅在属性没有找到时调用
设置属性.
示例:
class Book(object): def __setattr__(self, name, value): if name == 'value': object.__setattr__(self, name, value - 100) else: object.__setattr__(self, name, value) def __getattr__(self, name): try: return object.__getattribute__(name) except: return name + ' is not found!' def __str__(self): return self.name + ' cost : ' + str(self.value) c = Book() c.name = 'Python' c.value = 100 print c.name print c.value print c print c.Type
输出:
Python 0 Python cost : 0 Type is not found!
获取属性;内建getattr();总是被调用
删除属性