Python
Lzzwwen
这个作者很懒,什么都没留下…
展开
-
Python装饰器
函数装饰器装饰器简介装饰器基本知识闭包参数化装饰器标准库中的装饰器1 简介Python里我们经常能见到@开头的句法,没错@符号就是装饰器的语法糖,也就是人们常说的装饰器(decorator)。装饰器是Python非常重要的一部分,能够产出更易于维护的代码。装饰器本质上是一个Python函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一...原创 2019-06-05 16:21:43 · 451 阅读 · 0 评论 -
Python标准库—time模块
timetime模块提供了各种时间相关的函数,相关功能还可以参阅 datetime 和 calendar 模块。术语与惯例epoch:纪元(epoch)是时间开始的点,取决于平台;对于Unix, epoch 是1970年1月1日00:00:00(UTC);可使用time.gmtime(0)查看给定平台上的 epoch 。>>> time.gmtime(0)time....原创 2019-08-25 22:27:01 · 304 阅读 · 0 评论 -
Python标准库—timeit模块
timeittimeit模块提供了一种简单的方法来计算一小段 Python 代码的耗时。它有 命令行界面 以及一个 可调用 方法。命令行界面python -m timeit [-n N] [-r N] [-u U] [-s S] [-h] [statement ...]-n N,–nu’mber=N:执行语句多少次。-r N,–repeat=N:重复计时器的次数,默认为5.-s S...原创 2019-08-25 22:24:29 · 461 阅读 · 0 评论 -
Python标准库—decimal模块
decimaldecimal模块为快速正确舍入的十进制浮点运算提供支持。它提供了 float数据类型以外的几个优点:十进制数字可以准确表示:数字如 1.1 和 2.2 在二进制浮点中没有精确的表示。>>> 1.1 + 2.23.3000000000000003>>> from decimal import Decimal>>> ...原创 2019-08-25 22:22:27 · 5104 阅读 · 0 评论 -
Python标准库—random模块
randomrandom模块实现了各种分布的伪随机数生成器。该模块提供的函数实际上是 random.Random类的隐藏实例的绑定方法,你可以实例化自己的 Random 类实例以获取不共享状态的生成器。簿记功能random.seed(a=None, version=2)初始化随机数生成器。random.getstate()返回捕获生成器当前内部状态的对象, 这个对象可以传递给 ...原创 2019-08-25 22:18:53 · 225 阅读 · 0 评论 -
Python标准库—math模块
mathmath模块提供了对C标准定义的数学函数的访问,但这些函数不适用于复数;如果你需要计算复数,需要使用cmath模块中的同名函数。函数描述math.ceil(x)返回 x 的上限,即大于或者等于 x 的最小整数math.floor(x)返回 x 的下限,即小于或者等于 x 的最大整数math.fabs(x)返回 x 的绝对值math.facto...原创 2019-08-25 22:16:42 · 567 阅读 · 0 评论 -
Python标准库—codecs模块
codecs常用函数codecs.encode(obj, encoding='utf-8', errors='strict')使用为 encoding 注册的编解码器对 obj 进行编码,类似str.encode()方法。>>> codecs.encode("你好,world",encoding='ascii')Traceback (most recent call...原创 2019-08-25 22:14:10 · 3987 阅读 · 0 评论 -
Python标准库—struct模块
struct将字节打包为二进制数据。struct模块负责Python bytes对象在Python Value及C struct之间的转换。可以处理文件二进制数据、网络连接数据流或是其他源数据。它使用 Format Strings作为C结构布局的简洁描述以及与Python值的预期转换。字节顺序,大小和对齐方式第一个Format String可用于打包数据的字节顺序、大小和对齐。C...原创 2019-08-25 22:12:15 · 910 阅读 · 0 评论 -
Python标准库—json模块
json—Json编解码JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。Python使用json库编解码JSON对象:json 提供了与标准库marshal和pickle相似的API接口。注意:json模块总是会产生str对象,而不是 bytes对象。函数描述json.dumps将 Python 对象编码成...原创 2019-08-25 22:10:43 · 211 阅读 · 0 评论 -
Python标准库—pickle/marshal模块
pickle——Python对象序列化模块pickle 实现了对一个 Python 对象结构的二进制序列化和反序列化。 “Pickling” 是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程,而 “unpickling” 是相反的操作,会将(来自一个binary file或者bytes-like object的)字节流转化回一个对象层次结构。注意:pickle是Pytho...原创 2019-08-25 22:08:47 · 846 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式(称为RE,或正则,或正则表达式模式)本质上是嵌入在Python中的一种微小的、高度专业化的编程语言,Python通过标准库中的re模块来支持正则表达式。使用这种小语言,你可以为要匹配的可能字符串集指定规则;此集可能包含url,电子邮件地址,电话号码或你喜欢的任何内容。正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。1 元字符与特殊字符...原创 2019-08-25 22:03:54 · 775 阅读 · 1 评论 -
一等对象之函数
Python 函数什么是一等对象高阶函数匿名函数函数内省1 一等对象在Python中,函数是一等对象。一等对象定义如下:运行时创建能赋值给变量或数据结构中的元素能作为参数传递给函数能作为函数返回值即,函数和变量没什么“不同”,都是一等对象。2 函数即对象def factorial(n): """return n!""" return 1 if n&...原创 2019-08-25 22:01:17 · 234 阅读 · 0 评论 -
类与继承
类与继承1 多重继承1.1 方法解析顺序MRO提出问题:如果同级别的超类定义了同名属性,Python如何决定使用哪一个?答案是:方法解析顺序(Method Resolution Order)任何实现多重继承的语言都要处理潜在的命名冲突,这种冲突由不相关的祖先类实现同名方法引起。这种冲突叫做砖石(菱形)继承问题,如下图:第一个图是菱形问题的UML类图,第二个图橙色标记是示例的方法解析顺...原创 2019-08-25 21:58:44 · 198 阅读 · 0 评论 -
可迭代对象、迭代器、生成器
可迭代对象、迭代器、生成器迭代器用于从集合中取出元素,而生成器用于“凭空”产生元素。可迭代对象迭代器生成器iter函数1 什么是可迭代对象?使用iter内置函数可以获取迭代器的对象叫可迭代对象。如果对象实现了能返回迭代器的__iter__方法,那么对象就是可迭代的;序列都可以迭代;实现了__getitem__方法,而且其参数是从0开始的索引,这种对象也是可迭代的。Python从...原创 2019-08-25 21:55:56 · 119 阅读 · 0 评论 -
Python函数参数类型解析
Python函数参数类型解析python参数类型一共有五种:POSITIONAL_OR_KEYWORDVAR_POSITIONALVAR_KEYWORDKEYWORD_ONLYPOSITIONAL_ONLY(1)POSITIONAL_OR_KEYWORD:可以通过定位(位置)参数和关键字参数传入的形参,这是最常见的一种参数。def power(x, n=2): """r...原创 2019-08-25 21:54:23 · 684 阅读 · 0 评论 -
Scrapy架构及部分源码解析
Scrapy架构分析Spider及CrawlSpider源码分析Middlewares运作原理及部分源码分析Pipelines运作原理及部源码分析Scrapy架构Scrapy是用Twisted编写的,Twisted是一个流行的事件驱动的Python网络框架。因此,它使用非阻塞(也称为异步)代码实现并发。Scrapy官方文档中的系统架构图:Scrapy中的数据流动由执行引擎控制,过...原创 2019-07-24 10:51:18 · 1409 阅读 · 1 评论 -
特殊方法(dunder-method)
特殊方法(dunder-method)特殊方法名称基本定制自定义属性访问描述符协议特殊属性处理属性的内置函数容器类型序列协议迭代器协议上下文管理器协议子类检查自定义类创建解析MRO条目可调用对象数字类型1 特殊方法名称一个类可以通过定义具有特殊名称的方法来实现由特殊语法所引发的特定操作 (例如算术运算或下标与切片)。这是 Python 实现操作符重载的方式,允...原创 2019-06-22 20:42:11 · 1536 阅读 · 0 评论 -
描述符协议
描述符描述符简介描述符协议调用描述符描述符示例常见的描述符1 简介Python 描述符是对多个属性运用同种存取逻辑的一种方式。如,Django ORM和SQL Alchemy中的字段类型就是描述符,把数据库记录中的字段里的数据与Python对象的属性对应起来。Python 没有私有变量的概念,而描述符协议可以作为一种 Python 的方式来实现与私有变量类似的功能。一般来说,...原创 2019-06-05 16:30:48 · 391 阅读 · 0 评论 -
Python标准库—datetime模块
datetime时间对象有两种日期和时间的对象:“无知型“和”感知型“。感知型:感知型对象有着足以支持一些应用层面算法和国家层面时间调整的信息——例如时区和夏令时,来让自己和其他的感知型对象区别开来。无知型:无知型对象没包含足够多的信息来明确定位与之相关的 date/time 对象。 无知型对象所代表的是世界标准时间(UTC)、当地时间或者是其它时区的时间完全取决于程序——就像一个数字是...原创 2019-08-25 22:31:09 · 330 阅读 · 0 评论