摘要:
1、猴子补丁就是不改变原有模块的内容的前提下,给原有模块新增方法或者修改原有模块。 一个模块的函数,如果希望改变函数的功能,不改变函数名,通常是库模块,你不可能去修改三方库的源码的,实施起来不方便,而且假设你直接在原处改了东西,别人继续用那个库模块,你没和别人提前打好招呼,那可能产生悲剧。 2、面向 阅读全文
摘要:
0、声明,本篇只讨论空__init__.py文件的情况,不顾前提非得说__init__.py文件里面也可以写东西的不在此讨论了范围之内,重点是个"空"字。 1、很多地方的文件夹都有__init__.py。网上一般都说,有了这个东西会把它当作一个包,否则import这个文件夹会出错。 但这就好像和说p 阅读全文
摘要:
使用paramiko模块,比os模块和command模块更加的兼容各种环境。后面两个只能在服务器本机 执行,此模块写得python文件无论是在本地还是服务器本身上运行,都能兼容。 paramiko模块的用法如下。 阅读全文
摘要:
前言: oop非常非常非常重要。搞不懂oop,就玩不了python,就算能写也一定是写代码时候喜欢靠猜瞎猫碰死老鼠写得心很虚。为什么这么说呢,我也是从面向过程编程到死走过来的,一路def到死,一看到有class的代码就逃到十万八千里了不想看,想千方设百计绕过这样的代码。不仅不愿意看这样的代码,而且写 阅读全文
摘要:
1、继承 封装 多态是面向对象的三大特点,当年在考c++期末考试时候这三个特点还是作为填空题出现的。 而且老师也反复唠叨继承封装 多态,这三个词语是背得滚瓜烂熟了,但因为不是特别专业的计算机科班,学得不深入,只是能背着三个词语。 2、直到好几年上班后,经过了长时间的面向过程写代码和面向对象写法实践对 阅读全文
摘要:
最近接受老代码,mmp的,说是重新运行运行起来,那还不如重写呢,因为有很多毛病,不能直接运行,pep8就不用妄想奢望了,还有包括语法错误问题和内存严重泄露的问题(运行几分钟后python.exe进程达到2GB直至把电脑卡死),而且很难看懂代码,修改也不方便。 1、笼统的说,大部分人都认为面向对象适合 阅读全文
摘要:
最近pypi官网进行了更新,老的上传网址作废了。记录下上传到pypi的方法 0、去pypi官网注册账号,没账号是不可能上传的,想想也是那不乱套了吗,注册后会收到一个邮件需要点击然后重新登录 1、目录就是这样 ,我要上传mulitiprocessing_log_manager这个包到官网。 2、其中有 阅读全文
摘要:
来个简单的装饰器 使用方式: 无论怎么调用mongo_16_client这个属性,都不会多次连接。 阅读全文
摘要:
正常是一个测试类中按函数名字运行, 下面修改成直接按每个测试方法的代码顺序执行 文件 unittest_util.py 使用方法示例,import 这个文件 这样就是按代码顺序执行了,不需要在函数上加个数字做记号了。 谁写在上面就先执行谁。 阅读全文
摘要:
1、之前已经发过两次使用单浏览器了,但是这个最完美,此篇并没有使用任何单例模式的设计模式,用了实例属性结果缓存到类属性。 2、最简单的控制单浏览器是只实例化一次类,然后一直使用这个对象,但每个地方运行前必须确保先调用实例化的那段代码,这在多个测试方法之间没有依赖关系时候,并不需要指定先在什么地方实例 阅读全文
摘要:
使用 from lazy_object_proxy.utils import cached_property,使用这个装饰器。 由于官方的行数比较少,所以可以直接复制出来用自己的。 1、如果使用cached_property这个装饰器,是把result方法的结果绑定到实例的字典中,所以一共打印了两次 阅读全文
摘要:
简单点就是这种 运行上面这个,期待打印1和hello 实际上是不会打印任何东西的,因为@deco2后面忘了加括号,这样就悲剧了,把f2这个函数名赋值给param了,所以运行f2函数,得到的结果是_deco2这个函数对象,并没有去运行_deco2这个函数,所以没有打印。 所以必须一定要改成@deco2 阅读全文
摘要:
组合优点多,但经常比继承需要额外的代码。 上一篇是 介绍装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的四种方式。 此篇介绍直接把被组合的类的属性直接加入到类里面,前面的四个例子很简单,这次来个实际例子的举例。 1、这样就是组合来动态添加方法和属性了,DriverWrapper类的实例 阅读全文
摘要:
介绍装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加。 这样就完成了给类添加属性和方法了。 A类什么都不写,a的实例就有4个自定义的方法和4个属性了。 1、其中,元类,是在代码 阅读全文
摘要:
1、添加环境变量到pythonpath export PYTHONPATH=$PYTHONPATH:/home/myproject 查看pythonpathecho $PYTHONPATH 可以进入python解释器,打印sys.path证明生效没。 添加环境变量后,这样做在项目深层次的python 阅读全文
摘要:
例如杀死nginx 按照程序名称杀死进程 例如杀死nginx的进程 ps -aux|grep nginx|grep -v grep|cut -c 9-15|xargs kill -9 或者 ps -aux|grep nginx|grep -v grep|awk '{print $2}' |xargs 阅读全文
摘要:
主要是用来限定暴露的api a.py文件里面的内容 __all__ = ['major_fun'] def major_fun(): pass def assist_fun(): pass b.py from a import * 这样就只能使用 major_fun了。 阅读全文
摘要:
1、最近追求的是代码0警告,没有任何提示。 怎么追求这样的目标,不需要再去单独使用pylint和flake8这些玩意,只需要看pycharm右边编辑区的竖向滚动条的黄色就可以了。 2、 比较糟糕的就是这样的代码了,不仅是有黄色的提示,更恐怖的是黄色连成实体柱状了,这么多警告真的很恐怖,我接手修改这样 阅读全文
摘要:
1、python没有显式声明变量类型,不代表写代码时候可以没有类型概念,当使用三方包时候,三方包的方法经常返回一个三方包里面的自定义的类的实例,就是不是普通的int str list dict这些类型,得到这么个变量怎么处理他手足无措,连自己写的变量是什么类型的都是模糊的,那写代码就是蒙蔽的靠猜,或 阅读全文
摘要:
下面的3个print一个是在模块下面,一个是函数里面,一个是类名下面(不在方法里面) 1、 运行这段代码可以发现第3行和11行可以打印出来。第7行没有打印出来。所以可以放心,函数或者方法里面就算有错误,不调用它是不可能报错的,这是运行报错排查的基本常识,怎么也不要瞎找错误把抛错怪罪到这一块代码里面去 阅读全文