pep

Python 3.9.0 稳定版发布

我的梦境 提交于 2021-01-31 23:38:19
IT之家10月6日消息据网友投递,Python 3.9.0 稳定版(Python 3.9.0 final)昨日正式发布,它包含许多新功能和优化,禁止在Windows 7上安装,且默认提供64位安装程序。 IT之家了解到,Python 3.9.0 alpha 1首个迭代版本于2019 年11月推出,距今已有接近一年时间。 相比Python3.8之下,Python3.9系列的主要新功能和更改主要包括: PEP 573,C 扩展方法的模块状态访问 PEP 584,联合运营商的dict PEP 585,在标准集合中键入提示泛型 PEP 593,灵活的函数功能和变量注释 PEP 602,Python 采用稳定的年度发布方式 PEP 614,放宽对装饰器的语法限制 PEP 615,支持标准库中的IANA时区数据库 PEP 616,删除用于前缀和后缀的字符串方法 PEP 617,用于CPython的新PEG解析器 BPO 38379,垃圾回收程序不会阻止复活的对象; BPO 38692,添加了os.pidfd_open,它允许在没有竞赛(races)和信号(signals)的情况下进行进程管理; BPO 39926,Unicode支持已更新至版本13.0.0; BPO 1635741,在同一进程中多次初始化Python时,它不再泄漏内存; 现在使用PEP

pep 420 namespace_packages purpose in setup.py

╄→尐↘猪︶ㄣ 提交于 2021-01-28 05:57:24
问题 What is the purpose of the namespace_packages argument in setup.py when working with PEP420 namespace packages (the ones without __init__.py)? I played with it and saw no difference whether I declared the namespace packages or not. "setup.py install" and "pip install ." worked in any case. I am building an automatic setup.py code generator and would be happy not to handle this if this is not necessary. 回答1: As long as you: aim for Python 3.3 and newer or Python 2.7 with importlib2 dependency

[Python]判断序列是否为空的正确姿势

若如初见. 提交于 2021-01-14 10:05:10
本篇文章起源于StackOverflow上一个热度非常高的问题: 我该如何判断一个Python列表是否为空? @Ray Vega (提问者) 举例说明,现在我得到了如下代码: a = [] 我如何该检查 a 是否为空? 面对这个问题,各路高手给出了 不尽相同 的回答。 最高票答案十分简洁: @Patrick (答题者) if not a: print("List is empty") 利用空列表的隐式布尔值是一个非常 Pythonic 的方式。 排名第二的答案与第一观点相同,并以 PEP 8 作为依据,说明不仅是列表,Python中的内置 序列 类型都有推荐的做法: @Harley Holcombe (答题者) PEP 8 风格指南 给出了推荐的 Pythonic 的方法(其中 Yes 表示 推荐 , No 表示 不推荐 ): 对序列数据类型(字符串,列表,元组),利用空列表隐式为 False 的事实 Yes: if not seq: if seq: No: if len(seq): if not len(seq): 然而,排名第三的答案给出了 不同 的看法: 我更推荐显式的方法: if len(li) == 0: print('the list is empty') 这种方式明确声明了 li 是一个序列类型的变量,并且我们是在检查它的长度。而 if not li 的问题在于

醒醒!Python已经支持中文变量名啦

霸气de小男生 提交于 2021-01-14 08:37:22
来源:Python猫 作者:豌豆花下猫 最近,我在翻阅两本比较新的 Python 书籍时,发现它们都犯了一个严重的低级错误! 这两本书分别是《Python编程:从入门到实践》和《父与子的编程之旅》,它们都是畅销书,都在 2020 年 10 月出了新版本,都使用 Python3.7+ 版本的语法。 然而,在关于变量的命名规则部分,它们犯下了一样的错误,即还在使用 Python2 时代的那套说辞,误以为命名仅仅支持“字母、数字和下划线”的组合。 事实上,Python3.x 已经支持全面 Unicode 编码,比如支持使用中文作为变量名。 >>> 姓名 ="Python猫" >>> print(f"我是{姓名},欢迎关注!") 我是Python猫,欢迎关注! 由于我手头上没有其它样本,所以,我不确定有多少新版的书籍还在使用老的规则。但是,翻译类的书籍大概率都会有这样的问题,另外,有些不严谨的国内书籍,也可能因为借鉴了过时的材料而犯错。 如此一来,恐怕有些新接触 Python 的同学,就会形成错误的认识。虽然这可能不会造成严重的问题,但是它终归是一个应该避免而且很容易就能避免的问题。 因此,我觉得这个话题值得聊一聊。 在编程语言中有一个很常见的概念,即标识符(identifier),通常又会称之为名字(name),用于标识出变量、常量、函数、类、符号等实体的名字。 在定义标识符时

Pysa:Facebook最新开源Python静态分析工具

南笙酒味 提交于 2021-01-14 03:31:50
Python代码静态分析是一个标准化工程必不可少的一个环节,工程在上线之前需要对代码规范、语法问题进行详细的检查,防止问题随着代码发布到生产环境,避免酿成更大的故障。 这一点,在很多大型公司是非常重视的。因此,Python方面的静态检查工具层出不穷,处理经常使用的 pylint ,还有除此知名公司的一些工具: Google的pytype Microsoft的pyright Facebook的Pyre 虽然这些静态检查工具出自不同公司,但是核心功能如出一辙。都是基于PEP规范,去检查Python代码中的语言风格,判断是否符合编程规范,是否满足Python语法的要求,而对于更深层次的 安全 问题却从未涉足。 而Facebook最新开源的 Pysa 则是一款专注于检测和预防Python代码中 安全性问题 的静态检查工具,本文就来介绍一下这款出自Facebook的Python静态检查工具。 Pysa Pysa是一个专注于安全性的工具,它是在Facebook之前开源的静态检查工具 Pyre 的基础上进行开发的。 它主要用于检查代码中的数据流问题,这一点至关重要,因为,许多安全和隐私问题都可以归结为数据流入和流出过程中产生的。 Pysa使用了一些Facebook内部框架进行开发而成,这些框架主要基于隐私策略相关技术来防止用户数据的访问和泄露,这对于一家以社交为主的公司,可以说是非常擅长。

Pytest权威教程17-安装和使用插件

自古美人都是妖i 提交于 2021-01-14 03:00:46
[TOC] 返回: Pytest权威教程 安装和使用插件 本节讨论如何安装和使用第三方插件。有关编写自己的插件的信息,请参阅编写插件。 安装第三方插件可以通过以下方式轻松完成 pip : pip install pytest-NAME pip uninstall pytest-NAME 如果安装了插件,则 pytest 自动查找并集成它,无需激活它。 这是一些常用插件列表: pytest-django:为django应用程序编写测试。 pytest-twisted:为twisted应用程序编写测试,启动反应堆并处理测试函数的延迟。 pytest-cov:覆盖率报告,与分布式测试兼容 pytest-xdist:将测试分发到CPU和远程主机,以盒装模式运行,允许分段故障,在looponfailing模式下运行,自动重新运行文件更改的失败测试。 pytest-instafail:在测试运行期间报告失败。 pytest-bdd使用行为驱动的测试编写测试。 pytest-timeout:根据函数标记或全局定义进行超时测试。 pytest-pep8: --pep8 启用PEP8合规性检查的选项。 pytest-flakes:用pyflakes检查源代码。 oejskit:在实时浏览器中运行javascript unittests的插件。

Python3基础 try-except 几个异常采取同样的处理方法

自作多情 提交于 2021-01-13 08:37:48
       Python : 3.7.0        OS : Ubuntu 18.04.1 LTS        IDE : PyCharm 2018.2.4       Conda : 4.5.11     typesetting : Markdown   code """ @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @Gitee : gitee.com/zhichengjiu """ def main(): # 几个异常采取同样的处理方法,即except后面跟随多个异常类型 try: sum1 = 1 + '1' # 数据类型错误 file = open('不存在的文件.txt') file.close() except (OSError, TypeError) as reason: print('错误的原因是:', str(reason)) print() try: # sum1=1+'1' #数据类型错误 file = open('不存在的文件.txt') file.close() except (OSError, TypeError) as reason: print('错误的原因是:', str(reason)) if __name__ == '__main__': main()

Python

不打扰是莪最后的温柔 提交于 2021-01-12 19:59:18
适用于新生和经验丰富的Python基本面试问答 1)什么是Python?使用Python有什么好处? Python是一种具有对象,模块,线程,异常和自动内存管理的编程语言。python的优点是它简单,易用,可移植,可扩展,内置数据结构,并且是开源的。 2)什么是PEP 8? PEP 8是一个编码约定,是一组建议,有关如何编写更具可读性的Python代码。 3) 什么是Pickle和pickling? Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用转储功能将其转储到文件中,此过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为解开。 4)如何解释Python? Python语言是一种解释性语言。Python程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,该中间语言又被翻译为必须执行的机器语言。 5)如何在Python中管理内存? Python内存由Python专用堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此Python私有堆。 为Python对象分配Python堆空间是由Python内存管理器完成的。核心API允许访问一些工具,以便程序员进行编码。 Python还具有一个内置的垃圾收集器,该垃圾收集器回收所有未使用的内存,并释放内存并使之可用于堆空间。 6

Pycharm配置autopep8:自动调整代码为PEP8风格

此生再无相见时 提交于 2021-01-12 07:59:00
关于PEP 8 PEP 8,Style Guide for Python Code,是 Python官方推出编码约定,主要是为了保证 Python 编码的风格一致,提高 代码的可读性。 官网地址: https://www.python.org/dev/peps/pep-0008/ 关于Auto pep8 Auto pep8是自动将Python 代码 格式化为符合PEP 8风格的工具。它使用pycodestyle工具来确定 代码的哪些部分需要被 格式化。Auto pep8能够修复大部分pycodestyle检测的格式问题。 github地址: https://github.com/hhatto/autopep8 下载安装Autopep8 pip install autopep8 使用Autopep8 命令行使用方式如下 $ autopep8 --in-place --aggressive <filename> $ autopep8 --in-place --aggressive Student.py Pycharm配置Autopep8方法 1)选择菜单「File」–>「Settings」–>「Tools」–>「External Tools」–>点击加号添加工具 2)填写如下配置项,点击「OK」保存 Name:autopep8 (可随意填写) Tools settings:

Pycharm配置autopep8让Python代码更符合pep8规范

给你一囗甜甜゛ 提交于 2021-01-12 07:53:19
一、何为pep8? PEP 8官方文档 -- Style Guide for Python Code PEP8中文翻译(转) 二、Pycharm中配置pep8 Pycharm 本身是有 pep8 风格检测的,当你敲得代码中不符合规范时,会有下划波浪线提示。如何让代码修改为符合规范,去掉这些难看的波浪线呢?下面介绍步骤: 2.1安装autopep8 cmd窗口输入: pip install autopep8 2.2在Pycharm中安装autopep8配置 Tools → Extends Tools → 点击加号 配置项 Name:Autopep8(可以随便取) Tools settings: Programs:autopep8 (前提是你已经安装了哦) Parameters:--in-place --aggressive --aggressive $FilePath$ Working directory:$ProjectFileDir$ 点击Output Files → 添加,在对话框中的:Regular expression to match output中输入: $FILE_PATH$\:$LINE$\:$COLUMN$\:.* autopep8在pycharm中的使用:在Pycharm编辑其中新建一个python文件,编辑一些不符合pep8风格的代码