随笔分类 -  Python

摘要:功能性的文章直接用几个最简单的实现表达: xlsxwriter库的核心就是其Workbook对象。 创建一个指定名字的xlsx文件: 创建一个Workbook的实例对象。可以传入一个文件名字,如果不想生成的文件在当前路径下面,可以在文件名字前面带上绝对路径。 add_worksheet()就是增加一 阅读全文
posted @ 2017-02-03 18:42 piperck 阅读(15589) 评论(0) 推荐(0) 编辑
摘要:接上文,再介绍最后几个常用的魔法方法。 关于__dict__: 先上个例子: __dict__魔法方法可以被称为系统,他是存储各分层属性的魔法方法。__dict__中,键为属性名,值为属性本身。可以这样理解,在平时我们给类和实例定义的那些属性,都会被存储到__dict__方法中用于读取。而我们平时使 阅读全文
posted @ 2017-02-03 10:43 piperck 阅读(1847) 评论(0) 推荐(0) 编辑
摘要:这里只分析几个可能会常用到的魔法方法,像__new__这种不常用的,用来做元类初始化的或者是__init__这种初始化使用的 每个人都会用的就不介绍了。 其实每个魔法方法都是在对内建方法的重写,和做像装饰器一样的行为。理解这个道理 再尝试去理解每个细节装饰器会比较方便。 关于__str__和__re 阅读全文
posted @ 2017-01-28 14:23 piperck 阅读(23710) 评论(3) 推荐(4) 编辑
摘要:其实平时使用测试应用运行时间的情况 细算一下还真的很少。很久没有做性能优化的工作,不管是cProfile还是timeit模块都已经生疏了很久没有使用,我在以前的文章里面有提到过cPfile的性能测试使用,但是一直没有使用过这个更轻量级的运行时间测量库进行过仔细实践总结,今天就来总结一下。 从最简单的 阅读全文
posted @ 2017-01-15 21:19 piperck 阅读(12332) 评论(0) 推荐(2) 编辑
摘要:endpoint经常使用flask的人肯定不会面生。其实我一直没有关注过他是怎么寻址的,直到最近经常食用url_for这个函数才引起了我的注意。 url_for看源码感觉实现挺复杂的,我们姑且不在这里纠结看到这一句: 传入的第一个参数是endpoint,url_for函数会将挂在endpoint上面 阅读全文
posted @ 2016-11-14 00:40 piperck 阅读(2889) 评论(0) 推荐(0) 编辑
摘要:用super也很久了,但是一直没有关注过他的原理。最近开始越来越多关注python更底层的实现和奇技淫巧。看到该方法越发使用得多所以也研究了一波 平时单继承可能是我们遇到最多的情况。无非就是类似情况。 这个例子的类B继承了类A,然后在初始化方法里面调用了父类A的初始化方法并且传入了参数。 其实我想说 阅读全文
posted @ 2016-11-11 00:52 piperck 阅读(556) 评论(0) 推荐(0) 编辑
摘要:其实也是无意之中又看到这个东西,这次索性再记一下,免得下次忘记又再看一遍,往复循环浪费了太多时间。 __slots__其实我做项目这么久还没有主动使用过。下面reference有提到这么一句话 Warning: Don’t prematurely optimize and use this ever 阅读全文
posted @ 2016-11-10 15:32 piperck 阅读(443) 评论(0) 推荐(0) 编辑
摘要:今天在对flask客户端进行测试,然后看到我们服务器端用请求前钩子写了这样的代码 这段代码的意思是,在将请求发向flask路由的之前先运行这段代码,我们都知道要在requests里面设置cookies的参数只需要 只要在request方法里面带上cookies字典就可以让上面语句获得对应内容。 问题 阅读全文
posted @ 2016-10-18 21:30 piperck 阅读(3127) 评论(0) 推荐(0) 编辑
摘要:这个问题从早上日常扫segmentfault上问题开始 有个问题是 这里我开始误会了他的意思,以为他是想直接使用C().m调用这个方法,如果是这样,直接将装饰器@classmathod改成@property就可以达到效果了。 但是这里他想要达到的效果是C.m 也就是说在不实例化C对象的情况下去调用m 阅读全文
posted @ 2016-10-14 01:49 piperck 阅读(655) 评论(0) 推荐(0) 编辑
摘要:其实也是在写自己项目的时候遇到的,以前也遇到了但是一直采取的是回避的策略,这次总算弄清楚所以总结一下。 这个项目的顶级目录是medivac,他本身是一个python模块。 熟悉flask的人都知道,在写一个flask项目的时候,我们常常将一个模块的app初始化放在根目录的__init__.py文件中 阅读全文
posted @ 2016-09-21 03:08 piperck 阅读(4557) 评论(0) 推荐(0) 编辑
摘要:其实早就想写一篇深入浅出装饰器的文章,苦于一直没有找到很好的例子描述,自己除了在写api参数检测和日志打印的时候用到以外,其他地方也没有什么重度使用所以一直没有写。 我不会讲解装饰器的理论,还有各种基础原理什么的。网上多得不行的资料 千篇一律,这里只总结怎么使用,和记住装饰器。 这次我会以假装使用一 阅读全文
posted @ 2016-09-13 15:00 piperck 阅读(555) 评论(0) 推荐(0) 编辑
摘要:这个套系统算是非常完整的,由我自己全程设计构建的系统。其他几套系统多多少少是与同事合作之类的,并没有那么完整的经验。 不算大的一套东西,但是却的确学到很多,主要是关于数据库设计、设计api、代码结构设计、项目推进、项目时间和难度的预估、测试预估。 项目从拿到需求到积分系统的完成(包括对接现有支付模块 阅读全文
posted @ 2016-09-09 14:12 piperck 阅读(3727) 评论(0) 推荐(1) 编辑
摘要:我最开始其实是由于疑惑ROUND_FLOOR和 ROUND_DOWN的表现区别才看了一波文档,但是感觉拉出一票以前没有留意过的东西。 贴一个decimal文档里面的解释: 直接阅读上面的解释十分抽象,下面我结合例子来解释一下在正负数不同的情况下 他们究竟有着什么样的行为 首先给出一组负数的后一位超过 阅读全文
posted @ 2016-09-05 18:32 piperck 阅读(15503) 评论(0) 推荐(0) 编辑
摘要:(一) python中的类 首先这里讨论的python类,都基于继承于object的新式类进行讨论。 首先在python中,所有东西都是对象。这句话非常重要要理解元类我要重新来理解一下python中的类 当python在执行带class语句的时候,会初始化一个类对象放在内存里面。例如这里会初始化一个 阅读全文
posted @ 2016-09-04 21:47 piperck 阅读(18079) 评论(8) 推荐(5) 编辑
摘要:晚上的时候,无意之间看到stackoverflow上面的一个编程挑战赛,各路高手各种搞事,看到python的地方突然发现用了很多位运算的符号,但是~符号引起了我和同事的注意。 我们很少在程序中使用这种东西,一个是可读性问题,二是感觉不是很熟练于是兴致来了,便探究一番~按位取反运算(注意这是一个运算符 阅读全文
posted @ 2016-09-01 14:53 piperck 阅读(34154) 评论(3) 推荐(1) 编辑
摘要:今天在使用python 库mysqldb的rawsql的时候遇到一个问题(其实并不是mysqlbean引起的) 这里我在数据库里面的available_amount字段类型是decimal(16, 2),然后这里更新的时候amount的类型也是decimal,精度同样是精确到小数点后面两位。 但是这 阅读全文
posted @ 2016-08-25 21:30 piperck 阅读(3888) 评论(0) 推荐(0) 编辑
摘要:其实以前我记得有人对我说过,写代码甚至可以先写完测试之后部署好了再开始写逻辑代码。我觉得有点吃惊和奇怪,这不是扯淡吗? 但是这次在完成了积分支付第一阶段开发之后我意识到,这可能并不是开玩笑,特别是项目可能还涉及到以前的代码进行迁移,如何保证代码迁移之后还能继续正常运行? 越是大的项目,在这个上面的维 阅读全文
posted @ 2016-08-11 18:14 piperck 阅读(6037) 评论(2) 推荐(0) 编辑
摘要:一不留神已经到第四部分了,这一部分继续总结数据结构和常用的gevent类,废话不多说继续。 1.Timeout错误类 晚上在调试调用第三方接口的时候,发现有些接口耗时非常多,觉得应该有个超时接口来限制他们的过长时间的不结束。我开始尝试了requests上面的timeout参数,整个代码流程里面使用到 阅读全文
posted @ 2016-08-02 21:32 piperck 阅读(4598) 评论(0) 推荐(0) 编辑
摘要:gevent学习系列第三章,前面两章分析了大量常用几个函数的源码以及实现原理。这一章重点偏向实战了,按照官方给出的gevent学习指南,我将依次分析官方给出的7个数据结构。以及给出几个相应使用他们的例子。 1.事件: 事件是一个可以让我们在Greenlet之间异步通信的形式贴上一个gevent指南上 阅读全文
posted @ 2016-07-29 21:35 piperck 阅读(9850) 评论(0) 推荐(2) 编辑
摘要:在进行gevent源码学习一分析之后,我还对两个比较核心的问题抱有疑问: 1. gevent.Greenlet.join()以及他的list版本joinall()的原理和使用。 2. 关于在使用monkey_patchall()之后隐式切换的问题。 下面我将继续通过分析源码及其行为来加以理解和掌握。 阅读全文
posted @ 2016-07-29 17:27 piperck 阅读(2619) 评论(1) 推荐(1) 编辑