摘要: class Logging(type(sys)): #继承自sys模块? ''' 定义相关类常量,目的作为日志等级标识 最严重为CRITICAL,最松为NOTSET ''' CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN = WARNING INFO = 20 DEBUG = 10 NOTSET = 0 def __init__(self, *args, **kwargs): self.level = self.__class__.... 阅读全文
posted @ 2013-04-15 16:25 践道者 阅读(882) 评论(0) 推荐(0)
摘要: 从96行开始,非常简单 #为了兼容,把相关gevent模块名增加进sys.modules里,为gevent创建相关子模块 gevent = GeventImport('gevent') gevent.pool = GeventImport('gevent.pool') gevent.queue = GeventImport('gevent.queue') gevent.coros = GeventImport('gevent.coros') gevent.server = GeventImport('gevent.serv 阅读全文
posted @ 2013-04-15 11:59 践道者 阅读(1310) 评论(0) 推荐(0)
摘要: 从53行开始分析 1 def GeventImport(name): 2 ''' 3 本函数主要看type(sys)(name)的用法 4 意思是给sys对象生成name属性并加入到sys.modules字典中 5 以下是一个例子: 6 class A(object): 7 def __init__(self, name): 8 self.name = name 9 a = A("Jack")10 b = type(a)... 阅读全文
posted @ 2013-04-15 11:45 践道者 阅读(1319) 评论(0) 推荐(0)
摘要: 逐句分析goagent源代码,罗嗦的文字就不说了,直接上代码,首先要分析的是最重要的文件proxy.py 前51行代码try: import gevent #gevent模块 import gevent.core import gevent.queue #异步队列 import gevent.coros #原始锁? import gevent.server #TCP/SSL server import gevent.monkey gevent.monkey.patch_all(dns=gevent.version_info[0] >= 1) #将所有... 阅读全文
posted @ 2013-04-15 10:54 践道者 阅读(2808) 评论(0) 推荐(0)