随笔分类 - python
摘要:为什么有这篇"杂项"文章 实在是因为python中对象方面的内容太多、太乱、太杂,在写相关文章时比我所学过的几种语言都更让人"糟心",很多内容似独立内容、又似相关内容,放这也可、放那也可、放这也不好、放那也不好。 所以,用一篇单独的文章来收集那些在我其它文章中不好归类的知识点,而且会随时更新。 cl
阅读全文
摘要:解析、迭代和生成系列文章: "https://www.cnblogs.com/f ck need u/p/9832640.html" 何为生成器 生成器的wiki页:https://en.wikipedia.org/wiki/Generator_(computer_programming) 在计算机
阅读全文
摘要:解析、迭代和生成系列文章: "https://www.cnblogs.com/f ck need u/p/9832640.html" 本文介绍如何自定义迭代器,涉及到类的运算符重载,包括 的索引迭代,以及 、`__next__ __contains__`,如果不了解这些知识可跳过本文。 索引迭代方式
阅读全文
摘要:解析、迭代和生成系列文章: "https://www.cnblogs.com/f ck need u/p/9832640.html" range range()是一个内置函数,它返回一个数字序列,功能和Linux下的seq命令差不多。 range()返回的是一个可迭代对象(迭代器),可以被迭代工具f
阅读全文
摘要:解析、迭代和生成系列文章: "https://www.cnblogs.com/f ck need u/p/9832640.html" Python中的解析 Python支持各种解析(comprehension)操作,比如列表解析、集合解析、元组解析、字典解析。它们根据某些元素来创建(推导)出一个新的
阅读全文
摘要:解析、迭代和生成系列文章: "https://www.cnblogs.com/f ck need u/p/9832640.html" 在Python中支持两种循环格式:while和for。这两种循环的类型不同: while是通过条件判断的真假来循环的 for是通过in的元素存在性测试来循环的 更通俗
阅读全文
摘要:"装饰器1:函数装饰器" "装饰器2:类装饰器" "装饰器3:进阶" 本文是装饰器相关内容的第二篇,关于类装饰器。 "类装饰器"有两种解读方式:用来装饰类的装饰器;类作为装饰器装饰其它东西。你如何认为取决于你,两种说法都有出现在其它的文章中。我的文章中是将"类装饰器"解读为第一种方式,即装饰类的东西
阅读全文
摘要:"装饰器1:函数装饰器" "装饰器2:类装饰器" "装饰器3:进阶" 函数装饰器装饰方法 函数装饰器装饰普通函数已经很容易理解了: 如果装饰器是带参装饰器,那么等价的形式大概是这样的(和装饰器的编码有关,但最普遍的编码形式如下): 这样的函数装饰器也可以去装饰类中的方法。看下面的方法装饰形式: 它等
阅读全文
摘要:"装饰器1:函数装饰器" "装饰器2:类装饰器" "装饰器3:进阶" 先混个眼熟 谁可以作为装饰器(可以将谁编写成装饰器): 1. 函数 2. 方法 3. 实现了 的可调用类 装饰器可以去装饰谁(谁可以被装饰): 1. 函数 2. 方法 3. 类 基础:函数装饰器的表现方式 假如你已经定义了一个函数
阅读全文
摘要:Descriptor基础 python中的描述符可以用来定义触发自动执行的代码, 它像是一个对象属性操作(访问、赋值、删除)的代理类一样 。前面介绍过的property是描述符的一种。 大致流程是这样的: 1. 定义一个描述符类D,其内包含一个或多个 、`__set__() __delete__()
阅读全文
摘要:在functools模块中有一个工具partial(),可以用来"冻结"一个函数的参数,并返回"冻结"参数后的新函数。 很简单的解释,也是 "官方手册" 给的示例。对于int()函数,它可以将给定的数值转换成十进制整数,转换时可以指定以几进制的方式解析给定的数。例如: 现在不想这样指定 参数来将二进
阅读全文
摘要:管理属性的几种方式 在python中访问、设置、删除对象属性的时候,有以下几种方式: 1. 使用内置函数getattr()、setattr()和delattr() 2. 自己编写 、`setter() deleter()`方法 3. 重载 、`__setattr__() __delattr__()
阅读全文
摘要:使用Property管理属性 python提供了一种友好的getter、setter、deleter类方法的属性管理工具:property。 property()是一个内置函数,它返回一个Property对象,它的用法很简单,将getter、setter、deleter三个方法作为它的参数即可,这些
阅读全文
摘要:str、bytes和bytearray简介 str是字符数据,bytes和bytearray是字节数据。它们都是序列,可以进行迭代遍历。str和bytes是不可变序列,bytearray是可变序列,可以原处修改字节。 bytes和bytearray都能使用str类型的通用函数,比如find()、re
阅读全文
摘要:字典类型简介 字典(dict)是存储key/value数据的容器,也就是所谓的map、hash、关联数组。无论是什么称呼,都是键值对存储的方式。 在python中,dict类型使用大括号包围: dict对象中存储的元素没有位置顺序,所以dict不是序列,不能通过索引的方式取元素。dict是按照key
阅读全文
摘要:元组类型简介 使用括号包围的数据结构是元组(tuple)。例如: 元组和列表一样,都是容器型的数据结构,且都是序列,所以容器中的元素都是按照索引位置有序存放的。所以,可以进行索引取值、切片等序列通用操作。 不同的是,元组是不可变序列,无法原处修改,意味着修改元组必须创建新的元组对象。实际上元组的概念
阅读全文
摘要:集合类型简介 集合也是容器,其内元素都是无序、唯一、不可变的。它常用来做成员测试、移除重复数据、数据计算(比如交集、并集、差集)。 集合Set是dict的无value版。集合也使用大括号包围: Set中的元素和dict一样也是通过hash值来存储的:将元素hash()得到hash值,存储到Set中。
阅读全文
摘要:列表类型简介 列表类型是一个容器,它里面可以存放任意数量、任意类型的数据。 例如下面的几个列表中,有存储数值的、字符串的、内嵌列表的。不仅如此,还可以存储其他任意类型。 python中的列表是一个序列,其内元素是按索引顺序进行存储的,可以进行索引取值、切片等操作。 列表结构 列表是可变对象,可以原处
阅读全文
摘要:官方手册:https://docs.python.org/3.7/library/stdtypes.html sequence types list tuple range 序列简介 序列是指按照位置顺序来存储数据的数据结构,也就是说能通过数值索引进行操作。实际上,python对序列的解释是:只要类
阅读全文
摘要:python中有两种格式化输出字符串的方式:格式化表达式、format()方法。当然,还有一个简化操作的内置format()函数。 它们绝大部分功能都是重复的,熟悉printf的可以考虑使用格式化表达式,否则使用format()更友好些,因为它像处理函数参数一样,但format()有时候可能写的要更
阅读全文