11 2013 档案

Python Cookbook学习记录 ch6_3_2013/11/7
摘要:6.3限制属性的设置通常情况下,Python允许随意给类和类实例增加属性。但是对于某些特性的类,希望这种自由受到限制一种优雅的实现方法是写一个类和一个简单的自定义元类,再加上一个封装函数。# -*- coding: cp936 -*-def no_new_attributes(wrapped_setattr): """试图添加新属性,报错 但是允许已经存在的属性被随意设置""" def __setattr__(self,name,value): if hasattr(self,name): wrapped_setattr(self,. 阅读全文

posted @ 2013-11-07 22:51 七海之风 阅读(160) 评论(0) 推荐(0)

Python Cookbook学习记录 ch6_2_2013/11/7
摘要:6.2 定义常量常量是指一旦初始化后就不能修改的固定值。c++中使用const保留字指定常量,而python并没有定义常量的保留字。但是python是一门功能强大的语言,可以自己定义一个常量类来实现常量的功能。# -*- coding: UTF-8 -*-# Filename: const.py# 定义一个常量类实现常量的功能## 该类定义了一个方法__setattr()__, 和一个异常ConstError, ConstError类继承# 自类TypeError. 通过调用类自带的字典__dict__, 判断定义的常量是否包含在字典# 中。如果字典中包含此变量,将抛出异常,否则,给新创建的常 阅读全文

posted @ 2013-11-07 22:06 七海之风 阅读(185) 评论(0) 推荐(0)

Python Cookbook学习记录 ch6_1_2013/11/6
摘要:6.1 温标的转换在开式温度,摄氏度,华氏温度及兰金温度之间做转换将功能封装在如下的类中:# -*- coding: cp936 -*-class Temperature(object): coefficients = {'c':(1.0,0.0,-273.15),'f':(1.8,-273.15,32),'r':(1.8,0.0,0.0)} def __init__ (self,**kwargs): try: name,value = kwargs.popitem() except KeyError: nam... 阅读全文

posted @ 2013-11-06 22:58 七海之风 阅读(249) 评论(0) 推荐(0)

Python Cookbook学习记录 ch4_8-16_2013/11/2
摘要:4.8二维阵列变换讲一个列表的列表,将行换成列,列换成行。可以使用列表推导式>>> arr = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]>>> newarr= [[row[col] for row in arr] for col in range(len(arr[0]))]>>> print newarr[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]还有一种方法,使用内建函数zip>>> print map(list,zip(*arr))[[1, 阅读全文

posted @ 2013-11-03 20:56 七海之风 阅读(217) 评论(0) 推荐(0)

Python Cookbook学习记录 ch4_6/7_2013/11/2
摘要:4.6展开一个嵌套的序列使用了递归生成器,生成器(yield)这个东东的左右是每次产生多个值,函数就被冻结,函数停在那点等待激活,被激活后就从停止的那点开始执行生成器这个东东感觉是只可意会不可言传呀。def list_or_tuple(x): return isinstance(x, (list, tuple))def flatten(sequence, to_expand=list_or_tuple): for item in sequence: if to_expand(item): for subitem in flatten(item, to... 阅读全文

posted @ 2013-11-02 22:15 七海之风 阅读(159) 评论(0) 推荐(0)

Python Cookbook学习记录 ch4_1-5_2013/11/2
摘要:4.1 对象拷贝和C++一样,python也有深拷贝和浅拷贝前拷贝,如下,虽然生成了一个新的对象,但是对象内部属性和内容依然引用原对象>>> list_of_lists = [['a'],[1,2],['z',23]]>>> copy_lol= copy.copy(list_of_lists)>>> copy_lol[1].append('boo')>>> print list_of_lists,copy_lol[['a'], [1, 2, 'boo& 阅读全文

posted @ 2013-11-02 21:00 七海之风 阅读(153) 评论(0) 推荐(0)

导航