Python
文章平均质量分 71
耀凯考前突击大师
路漫漫其修远兮,吾将上下而求索。
展开
-
Python文件I/O模式总结
python的open(name[, mode[, buffering]])方法提供了打开文件的功能。打开文件的模式有如下几种:r,r+,w,w+,a,a+。这几种模式和C语言中fopen()是相同的。原创 2017-04-12 14:23:01 · 782 阅读 · 0 评论 -
在无GUI环境下(headless模式)配置并使用Python+selenium+chromium/firefox的流程
SeleniumSelenium封装了能够进行浏览器自动化的一系列工具和库的一款自动化工具。Selenium提供了遵守W3C WebDriver specification的一个平台,并且该平台提供了能与当前市面上几乎所有浏览器兼容的接口。如果需要使用SeleniumAPI控制浏览器,只需要定义 Selenium WebDriver并下载相应浏览器的驱动程序(executable)即...原创 2018-04-27 07:25:14 · 7448 阅读 · 0 评论 -
解决LINUX系统sudo下PYTHONPATH或PATH配置失效的问题
有时候我们需要使用root权限来执行某些python程序。同时即使我们自己在.bashrc或其他类似的配置文件中定义了PYTHONPATH或者PATH路径的话,也会出现import路径不存在的错误。这是因为在使用sudo模式执行程序的时候,系统会自动重置PATH环境变量。我们可以查看/etc/sudoers文件,如果其中存在如下所示的这行:Defaults env_reset则说明su...原创 2018-05-25 10:25:59 · 4735 阅读 · 2 评论 -
SQLAlchemy与数据库连接的QueuePool问题详解
从常见的一种连接错误说起有关SQLAlchemy与数据库的连接(Connection),最常见的一种runtime error如下所示:QueuePool limit of size <x> overflow <y> reached, connection timed out, timeout <z>这个异常的含义是当前系统所需并发数据库连接(对...原创 2018-07-08 11:46:58 · 12740 阅读 · 3 评论 -
如何使用Apache部署基于Python-Flask的后端服务器?
FlaskFlask是非常简单易用的一个python后端框架,非常适合用来快速开发小规模的后端程序。然而在对Flask开发的后端进行部署时,虽然Flask本身支持使用app.runthreaded=True, host='0.0.0.0',)实现多线程运行,但依然无法实现较高的性能表现。这种时候我们就需要将Flask应用部署到专业的后端服务器,例如使用MOD_WSGI将该应用部署至Apache...原创 2018-08-03 10:22:37 · 6148 阅读 · 0 评论 -
Python Unicode问题,看这一篇就够了
引言在使用Python的时候,最令人崩溃,同时也是最常见的错误信息之一,就是处理字符串时出现的UnicodeError,包括两个子异常类型UnicodeEncodeError和UnicodeDecodeError。遇到这一类问题时,包括我在内的大多数人的第一解决方案大概就是Google一下错误信息,然后逐个试一试Stackoverflow中给出的各个方法。往往是这里加了一些encode和deco...原创 2018-09-23 16:54:02 · 27136 阅读 · 5 评论 -
Python私有属性(private attributes)及其调用
Python中的私有属性在面向对象(Object Oriented Design)的情景下,所谓私有属性(private attributes),包括私有方法和私有变量,指的是只供一个类或者实例内部使用的方法和变量。这些方法和变量不应当被在类和实例的外部调用。然而,在Python的设计下并没有对类或者实例属性真正的访问限制(例如像Java中的关键字private)。由于在面向对象设计中,这是一...原创 2019-01-05 00:17:07 · 4429 阅读 · 0 评论 -
手把手教你打包Python库并创建自己的PyPI项目
摘要本文将以py3PortScanner为例,带大家了解如何将已经完成的python package打包,在README中添加travis-ci的__build passing__图标,并将package整体上传至PyPI(Python Package Index)从而使得其他用户可以通过pip命令来直接安装这个package。背景知识需求本文需要读者拥有一定的python编程经验和开源软件...原创 2019-01-02 17:45:59 · 3830 阅读 · 1 评论 -
Python装饰器(Decorator)完全指南-高级篇
Python装饰器的高级用法及实际开发中的应用翻译 2019-06-12 16:17:06 · 1224 阅读 · 0 评论 -
什么是闭包及Python中的闭包
什么是闭包Objects are data with methods attached. Closures are functions with data attached.一般来说,我们都非常熟悉面向对象(OOD)语言中的对象的概念。所谓对象(Object),指的是附带相应方法的__数据__。那么相对而言,闭包(closure)指的则是附带相应数据的__函数__。换句话说,闭包函数能够引...原创 2019-05-29 15:11:31 · 1264 阅读 · 1 评论 -
Python装饰器(Decorator)完全指南-基础篇
Python中decorator事实上即是一个接受函数作为输入变量并返回另一个函数对象的函数。翻译 2019-06-01 16:19:18 · 682 阅读 · 0 评论 -
Python中的__init__()和__call__()函数
在Python的class中有一些函数往往具有特殊的意义。__init__()和__call__()就是class很有用的两类特殊的函数。__init__()在Python中,__init__()函数的意义等同于类的构造器(同理,__del__()等同于类的析构函数)。因此,__init__()方法的作用是创建一个类的实例。__call__()Python中的函数是一级对象...原创 2017-04-20 11:31:07 · 105990 阅读 · 9 评论 -
Python如何从相对路径下import
Python相对路径下的import原创 2017-09-11 14:04:12 · 19798 阅读 · 0 评论 -
使用Python中的argparse从命令行接收boolean类型的参数
Python程序从命令行接收参数及如何接收boolean类型的参数。原创 2017-09-11 05:23:26 · 34316 阅读 · 6 评论 -
用Python编写一个高效的端口扫描器
PyPortScannerpython多线程端口扫描。原创 2017-04-18 02:34:31 · 26887 阅读 · 4 评论 -
Python中的yield关键字
详细地解析了Python中的yield关键字以及iterable,iterator和generator。原创 2017-04-24 13:15:59 · 1480 阅读 · 0 评论 -
Python函数参数传递的*args和**kwargs
*和**实际上真正的Python参数传递语法是*和**。*args和**kwargs只是一种约定俗成的编程实践。我们也可以写成*vars和**kvars。*args和**kwargs一般是用在函数定义的时候。二者的意义是允许定义的函数接受任意数目的参数。也就是说我们在函数被调用前并不知道也不限制将来函数可以接收的参数数量。在这种情况下我们可以使用*args和**kwargs。接下来我们...原创 2017-05-17 15:01:48 · 7472 阅读 · 0 评论 -
Python中的assert关键字
Python中的assert关键字的解析原创 2017-05-18 15:36:55 · 10950 阅读 · 0 评论 -
Python中的__new__和__init__的区别
Python中__new__和__init__的区别与联系。原创 2017-06-20 16:35:46 · 13792 阅读 · 4 评论 -
Python单元测试中mock一个返回generator的函数
python中mock一个返回generator的函数原创 2017-06-24 14:11:08 · 3121 阅读 · 0 评论 -
Python的参数传递
Python的参数传递机制。原创 2017-06-14 14:10:11 · 533 阅读 · 0 评论 -
Python中的method —— static mthod, class method和instance method
python中的@staticmethod,@classmethod和普通方法原创 2017-07-06 14:10:07 · 2351 阅读 · 0 评论 -
Python中的metaclass
一文带你完全读懂Python中的metaclass翻译 2017-08-16 05:21:27 · 950 阅读 · 0 评论 -
浅析套接字中SO_REUSEPORT和SO_REUSEADDR的区别
讨论了SO_REUSEPORT和SO_REUSEADDR在BSD中的起源及其作用的区别。分析了不同操作系统中二者意义上的差别。翻译 2017-04-02 10:57:33 · 18339 阅读 · 6 评论 -
Python装饰器(Decorator)完全指南-进阶篇
Python装饰器进阶如何装饰带有输入参数的函数如何装饰类方法如何动态生成装饰器翻译 2019-06-04 12:54:45 · 825 阅读 · 0 评论