随笔分类 -  Python

摘要:私有属性 python 私有属性以两个下划线开头。 python 私有属性只能在类内部访问,类外面访问会出错。 python 私有属性之所以不能在外面直接通过名称来访问,其实质是因为 python 做了一次名称变换。 保护属性 python 保护属性更多的是一种语法上的标识,用来提醒直接修改改对象时 阅读全文
posted @ 2016-08-29 15:49 弋痕夕的残影 阅读(2823) 评论(0) 推荐(1)
摘要:原始的初始化 子类直接调用超类 __init__ 方法初始化,当形成钻石继承的时候,超类会被多次初始化,可能会有意向不到的问题: BaseClass / \ OneClass TwoClass \ / TestClass 新类初始化 使用 super 可以解决超类重复初始化的问题,保证超类只被初始化 阅读全文
posted @ 2016-08-29 15:36 弋痕夕的残影 阅读(404) 评论(0) 推荐(0)
摘要:from functools import wraps class logit(): def __init__(self, logfile='out.log'): self.log = logfile def __call__(self, func): @wraps(func) def wrapper(*args... 阅读全文
posted @ 2016-08-26 16:21 弋痕夕的残影 阅读(1003) 评论(0) 推荐(0)
摘要:from functools import wraps def cache(func): data = {} @wraps(func) def wrapper(*args): if args in data: print "in cache" return data[args] else: ... 阅读全文
posted @ 2016-08-26 16:20 弋痕夕的残影 阅读(1072) 评论(0) 推荐(0)
摘要:1. 元素去重 2. 元素去重排序 2. 打印重复的元素 3. 阶乘 6. 列表推导式 7. 字典推导式 8. 集合推导式 9. 生成器推导式(有点像元组) 10.生成器和其它集合的转换 阅读全文
posted @ 2016-08-24 21:54 弋痕夕的残影 阅读(301) 评论(0) 推荐(0)
摘要:方法 重载 调用 减法重载 重载"-" 不同对象的减法处理 重载"-" 相同对象的减法处理 重载"+" 重载"+=" 重载乘法 不同对象的乘法: 索引重载 打印重载 调用重载 __call__相当与 X() 析构重载 __del__ 重载"|" 打印转换重载 长度重载 cmp重载 delattr重载 阅读全文
posted @ 2016-08-24 21:43 弋痕夕的残影 阅读(772) 评论(0) 推荐(0)
摘要:变量赋值 1. 把任意类型的变量【名称】赋值给新的变量,总是增加对象引用,而不是创建新的对象 2. 对于list、dict可变类型,操作的都是同一个对象 3. 使用del删除的是该对象的一个引用,只有当引用减为0对象才被回收 创建相同值的变量 1. 把相同值赋值给不同变量,list、tuple、dict、set都会创建新的对象 2. string类型不创建新对象 3. number类型和系统配置有... 阅读全文
posted @ 2016-08-19 10:21 弋痕夕的残影 阅读(219) 评论(0) 推荐(0)
摘要:python 的装饰器,其实用到了以下几个语言特点: 1. 一切皆对象 2. 函数可以嵌套定义 3. 闭包,可以延长变量作用域 4. *args 和 **kwargs 可变参数 第1点,一切皆对象,包括函数。函数也是个对象,所以函数这个对象可以和其他任何对象一样被赋值给其它变量,包括作为实数传递给函 阅读全文
posted @ 2016-08-13 16:29 弋痕夕的残影 阅读(189) 评论(0) 推荐(0)
摘要:通过列表表达式可以直接生成列表,不过列表一旦生成就需要为所有元素分配内存,有时候会很消耗资源。 所以,如果列表元素可以按照某种算法推算出来,这样就不必创建完整的list,从而节省大量的内存空间。 在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。 创建列表 创建生成器 阅读全文
posted @ 2016-08-13 15:50 弋痕夕的残影 阅读(4391) 评论(0) 推荐(0)
摘要:*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。 注意:同时使用*args和**kwargs时,必须普通参数在最前面,*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会 阅读全文
posted @ 2016-08-13 14:49 弋痕夕的残影 阅读(382) 评论(0) 推荐(0)
摘要:A MonkeyPatch is a piece of Python code which extends or modifies other code at runtime (typically at startup). A simple example looks like this: For 阅读全文
posted @ 2016-08-03 21:22 弋痕夕的残影 阅读(162) 评论(0) 推荐(0)
摘要:from stack overflow:http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python Classes as objects Before understanding metaclasses, you n 阅读全文
posted @ 2016-08-03 20:33 弋痕夕的残影 阅读(245) 评论(0) 推荐(0)