pep

关于Python3.9,看这张16岁高中生做的「新特性必知图」就够了

冷暖自知 提交于 2020-10-24 14:22:05
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9 ,「千呼万唤始出来」。 先来速看下此次发布版本的重点。 新 语法特性 : PEP 584,为 dict 增加合并运算符。 PEP 585,标准多项集中的类型标注泛型。 PEP 614,放宽对装饰器的语法限制。 新 内置特性 : PEP 616,移除前缀和后缀的字符串方法。 新 标准库中的特性 : PEP 593,灵活的函数和变量标注。 添加了 os.pidfd_open() ,允许不带竞争和信号的进程管理。 解释器 方面的改进: PEP 573,从 C 扩展类型的方法快速访问模块状态。 PEP 617,CPython 现在使用基于 PEG 的新解析器。 …… 新 库模块 : PEP 615,IANA 时区数据库现在已包含于标准库的 zoneinfo 模块。 图的拓扑排序实现现在已由新的 graphlib 模块提供。 为了更好地理解此次更新,Twitter上一位16岁少年 Pratham Prasoon ,还自制了一张 「Python 3.9新特性必知图」 。 列出了他认为比较重要的 八大新特性 ,广受网友好评。 字典合并与更新运算符 此次

深入理解 Python 之 with 语句

大城市里の小女人 提交于 2020-10-15 00:41:05
浅谈 Python 的 with 语句 深入理解 Python 王生辉, 李骅宸 发布: 2011-12-02 引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from future import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What’s new in Python 2.6? 中 with 语句相关部分介绍)。 with 语句适用于对资源进行访问的场合, 确保不管使用过程中是否发生异常都会执行必要的”清理”操作 ,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。 术语 要使用 with 语句,首先要明白上下文管理器这一概念。有了上下文管理器,with 语句才能工作。 下面是一组与上下文管理器和with 语句有关的概念。 上下文管理协议(Context Management Protocol) :包含方法 enter () 和 exit (),支持该协议的对象要实现这两个方法。 上下文管理器(Context Manager) :支持上下文管理协议的对象,这种对象实现了 enter () 和 exit () 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,负责执行 with 语句块上下文中的进入与退出操作。通常使用 with

Python到底是强类型语言,还是弱类型语言?

给你一囗甜甜゛ 提交于 2020-09-30 06:47:44
作者 | 豌豆花下猫 来源 | Python猫 前言 我在上一篇文章中分析了为什么 Python 没有 void 类型的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。 我们主要的分歧就在于: Python 到底是不是强类型语言? 我认为是,而他认为不是。 他写了一篇很长的文章《谁告诉的你们Python是强类型语言!站出来,保证不打你!》,专门重申了他的观点,但可惜错漏百出。 我曾有想法要写写关于 Python 类型的问题,现在借着这个机会,就来系统地梳理一下吧。 (PS:在我写作进行到差不多一半的时候,微信读者群里恰好也讨论到“强弱类型”的话题!在与大家讨论时,我的一些想法得到了验证,同时我也学到了很多新知识,所以本文的部分内容有群友们的功劳,特此鸣谢!) 动静类型与强弱类型 很多读者应该都熟悉动态类型与静态类型,但是很多人也会把它们跟强弱类型混为一谈,所以我们有必要先作一下概念上的澄清。 这两组类型都是针对于编程语言而言的,但关注的核心问题不同。 对于“动静类型”概念,它的核心问题是“什么时候知道一个变量是哪种类型”? 一般而言,在编译期就确定变量类型的是静态类型语言,在运行期才确定变量类型的则是动态类型语言。 例如,某些语言中定义函数“int func(int a){…}”,在编译时就能确定知道它的参数和返回值是 int 类型

Python 编码规范 Google Edtion

ε祈祈猫儿з 提交于 2020-08-20 01:14:35
styleguide Google Python Style Guide 1 Background Python is the main dynamic language used at Google. This style guide is a list of dos and don’ts for Python programs. To help you format code correctly, we’ve created a settings file for Vim . For Emacs, the default settings should be fine. Many teams use the yapf auto-formatter to avoid arguing over formatting. 2 Python Language Rules 2.1 Lint Run pylint over your code. 2.1.1 Definition pylint is a tool for finding bugs and style problems in Python source code. It finds problems that are typically caught by a compiler for less dynamic

【二食堂】Alpha

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-19 13:34:18
事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Alpha阶段 要解决的问题是:根据用户标注的信息完成知识图谱的生成渲染。要解决的问题定义得比较清楚,在功能规格说明书中给出了详细的原型设计。对典型的用户和典型的场景描述可以参见 功能规格说明书 我们达到目标了吗?(原计划的功能做到了几个?按照原计划交付时间交付了吗?原计划达到的用户数量达到了吗?) 实现 了的的功能有:用户登录注册、登出、实体的添加删除、实体关系的添加、知识图谱的渲染。 未实现 的功能有:导入文本、导出图谱数据结构、保存项目。 交付时间:原计划4.29交付,我们在削减了一些功能之后基本按时交付。 用户数量:我们预计发布一周后用户注册量为200,截止5.5日,我们的注册量为59人,未能达成预期用户数量。原因分析参见 Alpha - 项目展示 总体来说,我们在Alpha阶段的目标并没有完全实现。主要原因是前后端的学习成本非常高,在冲刺阶段大家都还在学习开发相关的知识,这也导致开发时间被大量压缩。 和上一阶段相比,团队软件工程的质量提高了吗?在什么地方有提高,具体提高了多少,如何衡量的? 没有上一阶段,我们从0开始开发的。 用户量,用户对重要功能的接受程度和我们事先的预想一致么?我们离目标更近了吗?有什么经验教训?如果历史重来一遍,我们会做什么改进?

how can I make a suggestion for a new feature in python

為{幸葍}努か 提交于 2020-08-19 07:26:04
问题 Suppose I think I have a great idea for some feature that should be in python's standard library. Not something of the magnitude of a new keyword etc, just a suggestion for another decorator that would help a lot, IMO. How can I suggest such a feature to the consideration of the "python committee :)"? 回答1: It really depends on the nature of the suggestion. If it's a bug, it should definitely be put on the tracker. Otherwise, it probably should not go in the tracker right away. Python

一篇文章掌握 Python 内置 zip() 的全部内容

六眼飞鱼酱① 提交于 2020-08-19 00:53:21
一篇文章掌握 Python 内置 zip() 的全部内容 zip() 是 Python 中最好用的内置类型之一,它可以接收多个可迭代对象参数,再返回一个迭代器,可以把不同可迭代对象的元素组合起来。 我之前写迭代器系列的时候,在《 Python进阶:设计模式之迭代器模式 》中简单地介绍过它,前几天翻译了 Python 3.10 采纳的 PEP-618 ,介绍了它将会迎来的变更。 但是,还有不少同学并不知道 zip(),或者不能熟练掌握它的用法,因此本文打算来做一个更为详细的梳理。 内容主要分三部分: 用法部分:介绍它的基础用法、高级用法、骚操作用法 进阶部分:介绍它的实现原理,关注几个实现的细节 发散部分:聚焦它的不足,以及解决方法 1、zip() 的 n 种用法 基本用法:像拉链一样,将多个可迭代对象组合起来,然后可以用 for 循环依次取出,或者一次性将结果存入列表、元组或者字典之类的容器中。 它的结果是一个迭代器,迭代器生成的元素是元组,第 i 个元组的元素分别来自可迭代对象参数的第 i 个元素,如上图所示。 另外,for 循环还可以把元组内的元素依次取出,这样会很方便: 它的参数并不要求是同一类的可迭代对象,因此可以有非常多的组合方式,例如: 但是,如果把字典作为 zip() 的参数,会是什么结果呢?字典是 key-value 键值对形式,跟列表之类的单一元素结构不同。