摘要:
【python's metaclass】 和objc中类似,metaclass用于创建一个类对象,但与objc不同的是,objc中每个类对象有各自不同的metaclass,而python中的metaclass主要用于创建class object。 首先,type可以像这样工作: __metaclass__属性 那么在__metaclass__中放置些什么代码呢? This allows classes or functions to be written which monitor or alter the class creation process.参考: 1... 阅读全文
posted @ 2013-12-01 23:41
Tekkaman
阅读(263)
评论(0)
推荐(0)
摘要:
【python's descriptor】1、实现了以下三个方法任意一个的,且作为成员变量存在的对象,就是descriptor。 1)object.__get__(self,instance,owner):instance是实例的引用,owner是类对象的引用。 2)object.__set__... 阅读全文
posted @ 2013-12-01 22:03
Tekkaman
阅读(286)
评论(0)
推荐(0)
摘要:
【__str__&__repr__】 object.__str__(self): Called by the str() built-in function and by the print statement to compute the “informal” string representat 阅读全文
posted @ 2013-12-01 20:17
Tekkaman
阅读(319)
评论(0)
推荐(0)
摘要:
【python要点之III】1、实现交换。 在C/C++中,交换两个变量,需要2个变量,tmp=x;x=y;y=tmp;。 在python中,交换两个变量可以这么写:x,y=y,x。2、is&is not操作符用于测试两个变量是否指向同一个对象。 a is b 等价于 id(a)==id(b)。3、//是地板除运算符。4、[::x]是步长切片,例如:s='abcdefgh',则s[::2]的结果是'aceg'。5、__dict__内部cpython实现使用了hash_table,非常耗内存,为了节省内存,可以在定义属性时使用__slots__,__slo 阅读全文
posted @ 2013-12-01 19:52
Tekkaman
阅读(309)
评论(0)
推荐(0)
摘要:
【python's is&==区别】 通常我们写: 1 if foo is None: pass 这个写法与以下的写法有何区别呢? 1 if foo == None: pass is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。例如:1 >>> class foo(object):2 def __eq__(self, other):3 return True4 5 >>> f = foo()6 >>> f == None7 True8 >>> f is None9 阅读全文
posted @ 2013-12-01 17:48
Tekkaman
阅读(342)
评论(1)
推荐(0)
浙公网安备 33010602011771号