python的内置方法
2016-04-29 17:55
686 查看
最近需要重新定义类,老是会忘记python内置方法的的作用和名称,mark一下加深一下记忆。
基本上python的常见内置方法如下面所示:
内置方法 说明
__init__(self,...)
初始化对象,在创建新对象时调用
__del__(self)
释放对象,在对象被删除之前调用
__new__(cls,*args,**kwd)
实例的生成操作
__str__(self)
在使用print语句时被调用
__getitem__(self,key)
获取序列的索引key对应的值,等价于seq[key]
__len__(self)
在调用内联函数len()时被调用
__cmp__(stc,dst)
比较两个对象src和dst
__getattr__(s,name)
获取属性的值,等价于点调用(例如a.(...)假如重定义一个字典类,则a[b]等价于a.b))
__setattr__(s,name,value)
设置属性的值,等价于点设置(a[b]=1,a.b=1)
__delattr__(s,name)
删除name属性
__getattribute__()
__getattribute__()功能与__getattr__()类似
__gt__(self,other)
判断self对象是否大于other对象
__lt__(slef,other)
判断self对象是否小于other对象 __ge__(slef,other) 判断self对象是否大于或者等于other对象 __le__(slef,other) 判断self对象是否小于或者等于other对象 __eq__(slef,other) 判断self对象是否等于other对象 __call__(self,*args) 把实例对象作为函数调用
下面po一下我重定义字典的代码
基本上python的常见内置方法如下面所示:
内置方法 说明
__init__(self,...)
初始化对象,在创建新对象时调用
__del__(self)
释放对象,在对象被删除之前调用
__new__(cls,*args,**kwd)
实例的生成操作
__str__(self)
在使用print语句时被调用
__getitem__(self,key)
获取序列的索引key对应的值,等价于seq[key]
__len__(self)
在调用内联函数len()时被调用
__cmp__(stc,dst)
比较两个对象src和dst
__getattr__(s,name)
获取属性的值,等价于点调用(例如a.(...)假如重定义一个字典类,则a[b]等价于a.b))
__setattr__(s,name,value)
设置属性的值,等价于点设置(a[b]=1,a.b=1)
__delattr__(s,name)
删除name属性
__getattribute__()
__getattribute__()功能与__getattr__()类似
__gt__(self,other)
判断self对象是否大于other对象
__lt__(slef,other)
判断self对象是否小于other对象 __ge__(slef,other) 判断self对象是否大于或者等于other对象 __le__(slef,other) 判断self对象是否小于或者等于other对象 __eq__(slef,other) 判断self对象是否等于other对象 __call__(self,*args) 把实例对象作为函数调用
下面po一下我重定义字典的代码
class Dict(dict): ''' Simple dict but support access as x.y style. ''' #初始化已实例化后的所有父类对象,方便后续使用或扩展父类中的行为: def __init__(self, names=(), values=(), **kw): super(Dict, self).__init__(**kw) #zip([seql, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。 # 若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。 for k, v in zip(names, values): self[k] = v #属性动态化处理;当使用点号获取类实例属性时,如果属性不存在就自动调用__getattr__方法。 def __getattr__(self, key): #此处为:提取字典内,指定key值的value,没找到则抛出异常。 try: return self[key] except KeyError: raise AttributeError(r"'Dict' object has no attribute '%s'" % key) #属性赋值;当设置类实例属性时自动调用。 def __setattr__(self, key, value): #此处为:设置字典对值。 self[key] = value
相关文章推荐
- 『Python』序列学习总结之五 ——列表推导式的一些应用
- Python学习路-常用函数(一)
- Python3学习笔记(urllib模块的使用)
- python日志模块----logging
- Python实现简单爬虫
- python执行系统命令后获取返回值的几种方式
- python读取命令行参数的方法
- Python的网页爬虫&文本处理&科学计&机器学习&数据挖掘工具集
- python 代码缩进
- python 在指定网址下载图片并显示
- python re 处理中文字符的问题
- Python操作excel,及图表展示
- 使用python三方库xlrd解析excel数据
- python ftplib 定时上传文件完整代码。
- Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用
- java直接调用python脚本的例子
- python 的日志logging模块学习
- python查找并删除相同文件-UNIQ File-wxPython-v6
- Python 拷贝对象
- python抓取新闻【华盛顿邮报】