
Python
Python相关技巧和知识
shenweihui
这个作者很懒,什么都没留下…
展开
-
Style Guide for Python Code
http://www.python.org/dev/peps/pep-0008/转载 2010-02-17 09:48:00 · 1058 阅读 · 0 评论 -
Tag matching using Regex
Single-character tag matching我们通常会碰到对字符串中的被tag包围的内容进行匹配的情况,比如abc "Hello, world"我们需要匹配""中的字符串,那么可以使用如下的regex "[^"]*"这里我们使用贪婪匹配来匹配字符串,为了防止过度匹配的情况发生,我们使用了排除型字符组,即[^"]来匹配引号中的内容。这里我们还可以原创 2011-07-01 14:40:00 · 1162 阅读 · 0 评论 -
Descriptor Review
上一次我们讲到Descriptor是作为类属性出现的,也就是说,对于f.a,这样的属性存取,其实是会被变换为type(f).__dict__[a].__get__(f, type(f))也就是说,对于Descriptor a,他是被存储在类的字典 __dict__中的。而如果我们通过类对象来存取a,其实就变换为F.__dict__[a].__get__(None, F)原创 2011-06-06 10:03:00 · 862 阅读 · 0 评论 -
eventlet implementation explained 1
以eventlet中echo server的例子来简单介绍eventlet的实现。英语较烂,多多包涵。原创 2010-07-13 07:11:00 · 1675 阅读 · 0 评论 -
eventlet SMTP Relay server
一个简单的eventlet编写的smtp relay server原创 2010-07-14 12:13:00 · 2060 阅读 · 0 评论 -
Module & Package
module是一个Python文件,而package是一个目录结构。package中必须包含__init__.py, 该文件可以为空,主要作用是让python识别这个目录为package。__init__.py中可以使用__all__这个列表来指定在from this_module import *时时,哪些模块会被自动载入__all__ = [ test ] module的字符串原创 2011-06-06 11:49:00 · 1829 阅读 · 0 评论 -
Monkey patch
Monkey patch的eventlet实现,通过修改globals,以及sys.modules达到修改标准库的目的原创 2010-07-13 12:03:00 · 8728 阅读 · 0 评论 -
greenlet implemenation
greenlet是一个python的coroutine库,本文简单介绍greenlet的实现,以及一些关键点。原创 2010-07-11 09:06:00 · 2369 阅读 · 0 评论 -
Delete elements while iterating a list
当我们想要在遍历一个list的同时去删除元素的时候,可能会遇到一些问题。先看一下下面的代码my_list = [1, 2, 4, 5]for elem in my_list: if elem % 2 == 0: my_list.remove(elem)print my_list我们肯定会希望这段代码的输出是[1, 5 ],但事实上,是[1, 4, 5]原创 2010-05-08 18:48:00 · 1277 阅读 · 0 评论 -
Property
上一次,我们简单介绍了一下Descriptor,但是由于Descriptor默认是类属性,如果我们需要更进一步的控制,就是针对每个属性都能够使用__get__, __set__进行访问的话,就需要property来协助了。Property Introductionproperty就是一个特殊的Descriptor,当我们对这个属性进行访问时,将会自动转化为对实例属性的访问(如果调用时提原创 2010-05-03 11:45:00 · 1146 阅读 · 0 评论 -
getattr & descriptor
Dict每个实例和类都有相应的__dict__属性,这个属性是一个dictonary。对于实例,存放实例相关的实例属性等。对于类,存放类定义中的类属性,函数对象等。 # old-style classclass A: def __init__(self): self.a = 1 def f1(self): pass def f2原创 2010-02-16 12:28:00 · 1238 阅读 · 0 评论 -
MRO & super
MROMethod resolution order是python用来解析方法调用顺序的。MRO对于多重继承中方法调用异常重要。python中有一个内建函数和MRO密切相关——super。顾名思义,super看上去应该是调用父类的方法,通常情况下也是如此。来看一段代码:class A(object): def __init__(self): print A._原创 2010-02-17 08:38:00 · 5428 阅读 · 5 评论