当前位置: 移动技术网 > IT编程>脚本编程>Python > 年薪20万Python工程师之Python中10个必读的PEP提案方法

年薪20万Python工程师之Python中10个必读的PEP提案方法

2020年03月23日  | 移动技术网IT编程  | 我要评论

pa18行销系统,鼓山好玩吗,楚汉传奇51

 

什么是pep

pep 是 python 增强提案(python enhancement proposal)的缩写。社区通过pep来给 python 语言建言献策,每个版本你所看到的新特性和一些变化都是通过pep提案经过社区决策层讨论、投票决议,最终才有我们看到的功能。写到这里,给大家推荐一个资源很全的python学习免非解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,每天给大家讲解python最新的技术,前景,学习需要留言的小细节

0、pep8

如果你还不知道pep8是什么,可能还算不上一位合格的python程序员,pep8是每个python程序员必读的提案,python虽然以简洁地的语法著称,但是并不意味着你就一定能写出简洁优雅的代码,pep8风格指南定义了编写 python 代码的规范和应该遵守的编码原则,我们在在编写代码的过程中都应该按照此规范约束我们的代码。每个开发者都应该多读几遍,做到了然于心。网上有各种版本的中译版,可选择性参考阅读。

有个通用的约定应该是可维护的、清晰可懂的、满足一致性的,同时也应该是好的编程习惯的基础。它不会违背你的意愿来强制要求你遵循那些规则。这就是python!” — tim peter

地址:

1、pep257

除了pep8,还有pep257是编写可维护代码的一份提案,指导程序员如何规范书写文档说明(docstring) 的提案。我们知道python是动态语言,动态语言的优点是代码简洁,但是缺乏约束性,所以很多时候需要通过文档说明来表达代码,提高代码的可维护性。

地址:
中译版:https://my.oschina.net/lucastiel/blog/1552148

2、pep20

说到python里面隐藏的彩蛋,pep20算得上一个,在python终端导入this模块,有二十条(其实是19条)关于python编程的禅学,还不看过的可以在python命令行输入 import this 试试,讽刺的是,this 模块的源代码晦涩难懂,这也是从作者从侧面来说明代码可读的重要性。
地址: 

 
image

3、pep 557

pep 557 是最近3.7中加入的新特性,叫做数据类(data class),此举也是让程序员写更少的代码,以前定义一个类,如果该类有很多属性的话,初始化时敲键盘手酸,比如以前一个类:

class regularcard
    def __init__(self, rank, suit):
        self.rank = rank
        self.suit = suit

    def __repr__(self):
        return (f'{self.__class__.__name__}'
                f'(rank={self.rank!r}, suit={self.suit!r})')

    def __eq__(self, other):
        if other.__class__ is not self.__class__:
            return notimplemented
        return (self.rank, self.suit) == (other.rank, other.suit)

那些魔术方法你全部要手动实现,现在不要了,你只要在类上面加一个装饰器@dataclass

from dataclasses import dataclass@dataclassclass dataclasscard:    rank: str    suit: str

它和上面的代码段是完全等价的,默认帮你实现了__init__等所有魔术方法。

地址:

4、 pep 435

枚举在python2中被认为是一个没用的东西,打脸的是社区觉得枚举还是有存在的必要,于是 pep 435 就专门添加了一种枚举类型,话说,在现代编程中,没有枚举真的不能称之为一门完整的语言。

>>> from enum import enum>>> class color(enum):...     red = 1...     green = 2...     blue = 3

地址:

5、 pep 3156

pep 3156 是python 3.4 中引入异步i/o框架asyncio 的一个提案,提供了基于协程做异步i/o编写单线程并发代码的基础设施。随后在pep492 中引入了 async/await语法 以及 pep380中的yield from 语法,自此,python有了原生的协程支持,不再依赖外部第三方库。

地址:

6、 pep 484

python是一门动态语言,所谓动态类型语言是指我们在定义变量,返回返回值的时候无需指定类型,解析器在运行的时候会自动判断其类型,某种程度上让代码变得更简洁,与此同时,带来的副作用就是在多人合作,bug定位和代码可读性等方面的不方面,所以前面介绍的 pep257 就是通过文档来规范代码,但是文档是非强制性的,你不写对代码的运行一点影响也没有,所以 pep 484 (python3.5 引入)提出了从代码层面上加入了静态语言的部分特性—-类型提示(type hints),你现在可以在函数、方法、类的参数和返回值声明其类型。与之类似还有pep526,不过是关于它是用来给变量指定类型的。

def greeting(name: str) -> str:    return "hello, {}!".format(name)

现在你会明白,java作为静态语言的优势了吧。

地址:

7、pep 572

pep 572 是关于表达式赋值的提案,语法是这样的:

while chunk := file.read(8192):   process(chunk)

该提案在社区争议性比较大,就是因为这个提案让 python 之父愤然退出 python 核心决策层,因为这个提案与社区其他成员产生了比较大的分歧。虽然python之父不再是 bdfl,但是该提案最终还是被纳入到 python3.8 中。

地址:

8、pep 404

pep 404 正如其名,一个关于 python2.8 版本号不存在的提案,python之父曾说过,如果python3要兼容python2,可能这个项目已经失败了,因为python2有太多的历史包袱,所以python2.7将成为python2的终结版本号,所有的新特新将加入到python3中。

地址:

9、 pep 0

说到必看的 pep,可能远不止我上面列的这些,于是有一个专门的pep是用来索引所有pep的集合。

地址:

还有哪些pep是你值得一读的?写到这里,给大家推荐一个资源很全的python学习免非解答.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,这里有资深程序员分享以前学习心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,每天给大家讲解python最新的技术,前景,学习需要留言的小细节

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

 
点赞关注.jpg
 
 
6人点赞
 
 
"小礼物走一走

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网