Python
文章平均质量分 50
冰旒
这个作者很懒,什么都没留下…
展开
-
python的re.findall和分组
findall函数在re表达式有分组的情况下是一个坑。findalldef main(): s = '12222222221.431451253252' import re # 我想匹配整个串 rgs = r'[0-9]+(\.[0-9]+)?' p = re.compile(rgs) rs = p.findall(s) print(rs)if __name__ == '__main__': main()['.4314512.原创 2021-08-05 18:50:48 · 2223 阅读 · 2 评论 -
python实现一个http服务器
最近在学习Flask源码的时候,发现了python有一个内置的http,可以用来搭建http服务器,所以花时间研究了一番。httpserver基于python的http包构建一个简易http服务器。使用到的两个类from http.server import BaseHTTPRequestHandler, HTTPServer源码首先查看BaseHTTPRequestHandler处理请求的部分的源码,才知道继承它后要怎么样才能接收处理请求。 # 跳过前面负责的逻辑,直接来到 .原创 2021-08-05 17:53:01 · 13078 阅读 · 0 评论 -
python中的super
supersuper是一个类super的语法super(type[, object-or-type])print(type(super))print(type(super(D, D())))输出<class 'type'><class 'super'>在python源码中查看一些super的结构。typedef struct { PyObject_HEAD PyTypeObject *type; //type类型 PyObject *o原创 2021-07-14 00:29:32 · 105 阅读 · 0 评论 -
python中的metaclass
python中的metaclassmetaclass元类自定义metaclassmetaclass的使用metaclass元类python中一切皆对象,所以定义的类(class A)也是对象。所定义的类的类型(type(ClassName))为元类,如果不指定metaclass,默认的metaclass为type。查看一般情况下定义的类的metaclassclass A(object): passprint(type(A))output:<class 'type'>原创 2021-07-08 16:39:27 · 212 阅读 · 0 评论 -
Python中魔术属性
普通属性和魔术属性普通属性都存储在__dict__属性中,而魔术属性由Python决定存储位置,有的魔术属性有特殊的存储方式,而也有的跟普通属性一样存储在__dict__中。魔术属性和普通属性的区别是魔术属性在解释器中有专门的处理函数,比如__dict__的_PyObject_GetDictPtr等,__doc__的type_set_doc等为这些魔术属性进行特别的处理。而普通属性是使用通用的函数处理。我们可以用Python的源码中查找它们的定义和使用流程。object和type源码先看看o原创 2021-07-10 15:18:44 · 464 阅读 · 0 评论