据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为(重写该方法),而这 ...
分类:
编程语言 时间:
2017-05-05 12:47:10
阅读次数:
179
自定义序列 自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等)。 因为如果要定制容器类型的话需要用到这些协议。首先,实现不变容器的话有一个协议:实现不可变容器,你只能定义__len__ 和 __ge ...
分类:
其他好文 时间:
2017-04-24 13:59:53
阅读次数:
150
据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发 ...
分类:
编程语言 时间:
2017-04-10 21:41:46
阅读次数:
283
__init__(self): 用于初始化对象属性(需求:根据需要设定属性) 用于自己定义初始化的属性类型及初始值 __init__()不需要任何返回值,__init__()返回值为none,不可修改 __str__(self): 用于改变打印对象时显示的内容 默认为: 实例的定义位置 类名 实例在 ...
分类:
编程语言 时间:
2017-03-31 19:52:25
阅读次数:
157
魔法方法 含义 基本的魔法方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一个方法2. 它的第一个参数是这个类,其他的参数是用来直接传递给 __init__ 方法3. __new__ 决定是否要使用该 __init__ 方法,因为 __new__ ...
分类:
编程语言 时间:
2017-03-21 16:02:33
阅读次数:
283
1.__init__ 2.__new__(cls[,]) 3.__del__(self):当对象将要被销毁的时候,此方法就会被调用 ...
分类:
其他好文 时间:
2017-03-19 17:02:23
阅读次数:
474
对象 = 属性+方法 面向对象特征(封装继承多态) 不同对象对同一动作有不同反应 魔法方法__: 公有 name 私有__name 组合:把没有实现关系的多个类放在一个类中 类,类对象,实例对象 常用BIF issubclass(A,B) issubclass(A,object) isinstanc ...
分类:
编程语言 时间:
2017-03-11 15:43:52
阅读次数:
147
__getattr__(self,name) 当用户试图访问name,而name属性不存在时就会调用getattr __getattribute__(self,name) 当用户试图访问name时就会调用getattribute __setattr__(self,name,value)当name被设 ...
分类:
其他好文 时间:
2017-03-05 14:42:43
阅读次数:
135
这里只分析几个可能会常用到的魔法方法,像__new__这种不常用的,用来做元类初始化的或者是__init__这种初始化使用的 每个人都会用的就不介绍了。 其实每个魔法方法都是在对内建方法的重写,和做像装饰器一样的行为。理解这个道理 再尝试去理解每个细节装饰器会比较方便。 关于__str__和__re ...
分类:
编程语言 时间:
2017-01-28 15:11:14
阅读次数:
442
镇场诗: 诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。 愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。——————————————————————————————————————————code: result: ———————————————————————————————— ...
分类:
编程语言 时间:
2017-01-20 23:27:43
阅读次数:
486