08 2018 档案
摘要:1、python mysql redis mongodb selneium requests举得这5个库里面的主要被用户使用的东西全都是面向对象的,包括requests.get函数是里面每次都是实例化了一个新的Session类实例,只是看起来是调用函数,要想精确控制使用,直接使用requests g
阅读全文
摘要:1、redis mongodb mysql的python包都提供了批量插入操作,但需要自己在外部对一个例如1000 001个任务进行分解成每1000个为1个小批次,还要处理整除批次数量后的余数,如果做一次还可以,如果是很多任务多要这样做,有点麻烦。 例如redis的,mongo的也一样,需要在外部自
阅读全文
摘要:1、python的MySQLdb和pymysql是两个基本数据库操作包,MySQLdb安装很麻烦,要有c++相关环境,python3也安装不了。 python3一般安装pymysql,此包与MySQLdb包具有高度的可替换性,只要学习一种库的api,另一种库的操作方法完全一模一样,不需要新学api。
阅读全文
摘要:之前发过了一组常用的装饰器,包括了一个where_is_it_called的装饰器,可以计时和对入参和返回结果,被何处调用进行记录,十分强大。 这是用上下文,上下文的好处是,不需要抽成函数才能计时。 测试下:
阅读全文
摘要:python -u 启动python文件的作用是不缓存,直接把输出重定向到文件,比如nohup启动什么的,如果不使用-u启动,那么程序中的print和日志什么的,可能不会非常及时的重定向到out文件,导致程序内部当前正在发生什么看不到,加上-u就会很及时了。 也可以添加环境变量 PYTHONUNBU
阅读全文
摘要:/data/miniconda3dir/envs/mtfy/bin:$PATH 和$PATH:/data/miniconda3dir/envs/mtfy/bin 区别是非常大。在linux中不同环境变量用:分割在windiws中用;分割在supervisor中配置环境变量 /data/minicon
阅读全文
摘要:需要批量操作时候,节省网络连接交互次数,可以使用 bulk_write。 设置ordered=False,因为批量操作中没有互相依赖关系,如果有前后顺序的互相依赖,需要设置为True。 bed_type_match_failed_list = [{'_id': b, 'update_time': datetime.datetime.now()} for b in self.bed_type_m...
阅读全文
摘要:单例模式的写法非常多,但常规型的单例模式就是这样写的,各种代码可能略有差异,但核心就是要搞清楚类属性 实例属性,就很容易写出来,原理完全一模一样。 如下: 源码: 实例化了三个对象,执行结果可以猜猜: 可以发现,执行了一次new,但执行了两次init,这是在新式类下运行的,python3默认是新式类
阅读全文
摘要:1、大部分情况下,你拥有一个单方法类的原因是需要存储某些额外的状态来给方法使用。 此种情况下可以使用闭包代替,参考 javascript的闭包计数器实现,python实现各种方法来实现计数器 关于这个计数器闭包和类各有千秋吧,但如果不是但方法的类,使用闭包模拟面向对象,那肯定是没有使用类好,类不光是
阅读全文
摘要:格式化一般用%,但后来推荐用format format有进步,可以用索引或者名字,但仍然没有很方便和快捷
阅读全文
摘要:1、self是什么,一般都说指对象本身,这样说了没了用,说了后还是很难懂,因为这样说了后,仍然完全搞不清楚,什么时候变量前需要加self,什么时候不需要加self。 造成很多人,已经怕了self,不停地测试,加self减self来测试代码,或者干脆不知道要不要self,所有变量前面一律加self,这
阅读全文