python进阶
卡布达1号
寒蝉凄切,对长亭晚
展开
-
python3[进阶]8.对象引用、可变性和垃圾回收
8.1变量不是盒子python变量类似于Java中的引用型变量,因此最好把他们理解为附注在对象上的标注.a = [1,2,3]b = aa.append(7)print(b)输出为:[1, 2, 3, 7]// 可以发现,a和b引用同一个列表,而不是那个列表的副本因为变量只不过是标注,所以可以为对象贴上多个标注,贴的多个标注就是别名.8.2 标识,相等性和别名每个变量...原创 2019-05-26 13:35:39 · 295 阅读 · 0 评论 -
关于python3中的包operator(支持函数式编程的包)
文章目录1.functools2.operator.itemgetter3.operator.attrgetter虽然 Guido 明确表明,Python 的目标不是变成函数式编程语言,但是得益于 operator 和functools 等包的支持,函数式编程风格也可以信手拈来。接下来的两节分别介绍这两个包。1.functools示例1 使用 reduce 函数和一个匿名函数计算阶乘f...原创 2019-07-12 06:39:20 · 919 阅读 · 0 评论 -
python爬虫面试遇到的问题
python爬虫面试遇到的问题原创 2019-07-18 19:42:51 · 848 阅读 · 0 评论 -
[python 进阶] 第7章 函数装饰器和闭包
文章目录7.1 装饰器基础知识7.2 Python何时执行装饰器函数装饰器用于在源码中“标记”函数,以某种方式增强函数的行为。这是一项强大的功能,但是若想掌握,必须理解闭包。nonlocal 是新近出现的保留关键字,在 Python 3.0 中引入。除了在装饰器中有用处之外,闭包还是回调式异步编程和函数式编程风格的基础。本章的最终目标是解释清楚函数装饰器的工作原理,包括最简单的注册装饰器和...原创 2019-08-05 04:45:49 · 493 阅读 · 0 评论 -
【排序】算法(python实现)
python 排序算法1 插入排序1.1 直接插入排序直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。因此,从上面的描述中我们可以发现,直接插入排序可以用两个循环完成:第一层循环:遍历待比较的所有数组元素第二层循环:将本轮选择的元素(selected)与已经排好序的元素(ordered...原创 2019-08-08 10:17:34 · 166 阅读 · 0 评论 -
[python 进阶] 9. 符合Python风格的对象
文章目录9.1 对象表示形式9.2 再谈向量类本章包含以下话题:支持用于生成对象其他表示形式的内置函数(如 repr()、bytes(),等等)使用一个类方法实现备选构造方法扩展内置的 format() 函数和 str.format() 方法使用的格式微语言实现只读属性把对象变为可散列的,以便在集合中及作为 dict 的键使用利用 slots 节省内存。我们将开发一个简单的二...原创 2019-08-11 21:31:01 · 345 阅读 · 0 评论 -
Python3中的可变与不可变类型
在描述变量是否是可变类型时,可变与否实际上说的是对变量进行“修改”时变量的内存地址是否会发生变化,而非值是否可变。在Python中,对不可变的变量进行“修改”实际上是重新赋值,对可变的变量进行修改才是真正的修改,因为其内存地址并未发生变化。我们可以简单总结出以下几点:1.对不可变类型的变量进行修改实际上是对其重新赋值;2.在Python中’='并不是复制,而是将变量指向另一个变量的值的内存地...原创 2019-08-13 19:47:46 · 189 阅读 · 0 评论 -
python的名词解释
高阶函数闭包原创 2019-08-09 16:24:53 · 890 阅读 · 0 评论 -
python中带*(单星号)的变量和**(双星号)的变量
一、*args的使用方法 *args 用来将参数打包成tuple给函数体调用二、**kwargs的使用方法 **kwargs 打包关键字参数成dict给函数体调用注意点:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。单星号变量实例(*)单星号(*)的其它作用:单星号变量不仅仅能...原创 2019-08-14 19:59:04 · 1462 阅读 · 0 评论 -
[python进阶]11接口:从协议到抽象基类
本章讨论的话题是接口:从鸭子类型的代表特征动态协议,到使接口更明确、能验证实现是否符合规定的抽象基类(Abstract Base Class,ABC)。首先,本章说明抽象基类的常见用途:实现接口时作为**超类(父类,基类)**使用。然后,说明抽象基类如何检查具体子类是否符合接口定义,以及如何使用注册机制声明一个类实现了某个接口,而不进行子类化操作。最后,说明如何让抽象基类自动“识别”任何符合...原创 2019-08-20 11:28:35 · 210 阅读 · 0 评论 -
关于range方法,如果你觉得python很简单就错了
前言:在系统学习迭代器之前,我一直以为 range() 方法也是用于生成迭代器的,现在却突然发现,它生成的只是可迭代对象,而并不是迭代器!1、range() 是什么?对于 range() 函数,有几个注意点:(1)它表示的是左闭右开区间;(2)它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;...原创 2019-07-12 05:29:53 · 307 阅读 · 0 评论 -
关于python中函数传参数的小栗子
1def tag(name, *content, cls=None, **attrs): if cls is not None: attrs['class'] = cls if attrs: attr_str = ''.join(' %s="%s"' % (attr, value) for attr, value in sorted(attrs.i...原创 2019-07-10 23:05:27 · 142 阅读 · 0 评论 -
python (第八章)补充-可迭代对象(补充高阶函数,以及常用的高阶函数)
可迭代对象我们已经知道,可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象。迭代器而生成...原创 2019-05-26 14:01:54 · 163 阅读 · 0 评论 -
python (第二章)数据结构
文章目录2.5 对序列使用 +和 ×建立由列表组成的列表2.6序列的增量赋值(+=和×=)关于 +=的谜题补充:extend()方法和+有什么区别呢?2.7 list.sort方法和内置函数sorted(排序)2.8 用bisect来管理已排序的序列2.8.2用bisect.insort插入元素2.9 当列表不是首选时2.9.1 数组2.9.2内存视图2.9.3 NumPy和SciPy2.9.4 ...原创 2019-05-26 17:52:17 · 424 阅读 · 0 评论 -
python中的collections
python collections原创 2019-05-31 18:28:57 · 167 阅读 · 0 评论 -
python进阶(第三章1) 字典
文章目录3.1 泛映射类型什么是可散列的数据类型(键的要求)字典的构造方法3.2 字典推导(dictcomp)3.3 常见的映射方法用setdefault处理找不到的键3.4 映射的弹性键查询3.4.1 defaultdict:处理找不到的键的一个选择注意:defaultdict与dict实例化字典类型的区别defaultdict的构造3.4.2 特殊方法__missing__3.5 字典的变种c...原创 2019-06-01 17:45:11 · 700 阅读 · 0 评论 -
python进阶(第三章2)字典和集合
python进阶(第三章2)集合论原创 2019-06-01 18:44:22 · 258 阅读 · 0 评论 -
collections 中的namedtuple
collections 中的namedtuple原创 2019-07-13 02:05:04 · 314 阅读 · 0 评论 -
python【进阶】4.文本和字节序列
文章目录1. 字符、码位和字节表述4.1字符问题2. bytes、bytearray 和 memoryview 等二进制序列的独特特性3. 全部 Unicode 和陈旧字符集的编解码器4.避免和处理编码错误5.处理文本文件的最佳实践6.默认编码的陷阱和标准 I/O 的问题7.规范化 Unicode 文本,进行安全的比较8.规范化、大小写折叠和暴力移除音调符号的实用函数9.使用 locale 模块和...原创 2019-07-04 13:22:25 · 462 阅读 · 0 评论 -
python【进阶】5.一等函数(注销)
在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体:在运行时创建能赋值给变量或数据结构中的元素能作为参数传给函数能作为函数的返回结果在 Python 中,所有函数都是一等对象。5.1 把函数视作对象>>> def d(n):... '''return n!'''... return 1 if n<2...原创 2019-07-04 15:53:29 · 190 阅读 · 0 评论 -
python[进阶] 6.使用一等函数实现设计模式
python[进阶] 6.使用一等函数实现设计模式原创 2019-07-15 04:45:19 · 324 阅读 · 0 评论 -
[python进阶]12.继承的优缺点
本章探讨继承和子类化,重点是说明对 Python 而言尤为重要的两个细节:子类化内置类型的缺点多重继承和方法解析顺序12.1 子类化内置类型很12.2 多重继承和方法解析...原创 2019-08-20 13:47:23 · 246 阅读 · 0 评论