【Python基础】Python面向对象 - 4 - 定制类的特殊方法
2015-09-11 01:37
856 查看
在设计类的过程中,若想要类表现出一些特殊行为或者能够响应某些内建函数或操作符,那么就需要构建一些特殊方法。这些特殊方法的标识是方法名以双下划线(__)开头和结尾;除了常用的构造器__init__()外,还有一些常用的特殊方法:
参考:http://www.pythontip.com/blog/post/5225/
构造器(带一些可选的参数);通常用在设置不可变数据类型的子类
__del__(self)
析构函数
__str__(self)
可打印的字符串输出;内建str()及pring()函数
__repr__(self)
运行时的字符串输出;内建repr()函数及‘’操作符
__len__(self)
长度;内建len()
获取属性;内建getattr();仅在属性没有找到时调用
__setattr__(self, name, value)
设置属性.
示例:
输出:
__getattribute__(self, name)
获取属性;内建getattr();总是被调用
__delattr__(self,attr)
删除属性
参考:http://www.pythontip.com/blog/post/5225/
基础方法
__new__(self, [arg2,... ...])构造器(带一些可选的参数);通常用在设置不可变数据类型的子类
__del__(self)
析构函数
__str__(self)
可打印的字符串输出;内建str()及pring()函数
__repr__(self)
运行时的字符串输出;内建repr()函数及‘’操作符
__len__(self)
长度;内建len()
类的属性
__getattr__(self, name)获取属性;内建getattr();仅在属性没有找到时调用
__setattr__(self, name, value)
设置属性.
示例:
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!
__getattribute__(self, name)
获取属性;内建getattr();总是被调用
__delattr__(self,attr)
删除属性
相关文章推荐
- python 标准库urllib2的使用细节
- Python使用matplotlib和pandas实现的画图操作【经典示例】
- python脚本 从wooyun.org获取厂商域名
- Python POST实现发送Ajax的两个坑
- Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
- python 笔记2--函数
- python 笔记2--函数
- 2015/9/10 Python基础(11):错误和异常
- 零基础学python-15.3 函数的定义、调用与多态
- 零基础学python-15.3 函数的定义、调用与多态
- Python 之 使用 PIL 库做图像处理
- python MySQLdb在windows环境下的快速安装、问题解决方式
- Win7 64bit 下Python 安装Numpy Unable to find vcvarsall.bat
- Python 使用断言的最佳时机
- "Python"学习笔记(七)(切片)
- 零基础学python-15.2 分解函数
- 零基础学python-15.2 分解函数
- Python使用Rsa公钥加密,私钥解密以及私钥签名,公钥验签的例子
- wxPython python3.x下载地址
- numpy基础操作