最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python编码风格是什么

    正文概述    2020-08-09   293

    python编码风格是什么

    python的编码规则基本遵从 PEP 准则。

    但是,命名和单行长度更灵活。

    PEP8 涵盖了诸如空格、函数/类/方法之间的换行、import、对已弃用功能的警告之类的寻常东西,大都不错。

    应用这些准则的最佳工具是 flake8,还可以用来发现一些愚蠢的语法错误。

    PEP8 原本只是一组指导原则,不必严格甚至虔诚地信奉。一定记得阅读 PEP8 「愚蠢的一致性就是小人物的小妖精」一节。若要进一步了解,可以听一下 Raymond Hettinger 的精彩演讲,「超越 PEP8」。

    唯一引起过多争议的准则事关单行长度和命名。要调整起来也不难。

    灵活的单行长度

    若是厌烦 flake8 死板的单行长度不得超过 79 个字符的限制,完全可以忽略或修改这一准则。这仍然不失为一条不错的经验法则,就像英语中句子不能超过 50 个单词,段落不能超过 10 个句子之类的规则一样。这是 flake8 配置文件 的链接,可以看到 max-line-length配置选项。值得注意的是,可以给要忽略 flake8 检查的那一行加上 # noqa 注释,但是请勿滥用。

    尽管如此,超过九成的代码行都不应该超过 79 个字符,原因很简单,「扁平胜于嵌套」。如果函数每一行都超出了 79 个字符,肯定有别的东西出错了,这时要看看代码而不是 flake8 配置。

    一致的命名

    关于命名,遵循几条简单的准则就可以避免众多足以影响整个小组的麻烦。

    推荐的命名规则

    下面这些准则大多改编自 Pacoo 小组。

    类名:驼峰式 和首字母缩略词:HTTPWriter 优于 HttpWriter。

    变量名:lower_with_underscores。

    方法名和函数名:lower_with_underscores。

    模块名:lower_with_underscores.py。(但是不带下划线的名字更好!)

    常量名:UPPER_WITH_UNDERSCORES。

    预编译的正则表达式:name_re。

    通常都应该遵循这些准则,除非要参照其他工具的命名规范,比如数据库 schema 或者消息格式。

    还可以用 驼峰式 给类似类却不是类的东西命名。使用 驼峰式 的主要好处在于让人们以「全局名词」来关注某个东西,而不是看作局部标记或动词。值得注意的是,Python 给 True,False 和 None 这些根本不是类的东西命名也是用 驼峰式。

    不要用前缀后缀

    …… 比如 _prefix 或 suffix_ 。函数和方法名可以用 _prefix 标记来暗示其是「私有的」,但是最好只在编写预期会广泛使用的 API 以及用 _prefix 标记来隐藏信息的时候谨慎使用。

    PEP8 建议使用结尾的下划线来避免与内置关键字重名,比如:

    sum_ = sum(some_long_list)
    print(sum_)

    临时这样用也可以,不过最好还是选一个别的名字。

    用 __mangled 这种双下划线前缀给类/实例/方法命名的情况非常少,这实际上涉及特殊的名字修饰,非常罕见。不要起 __dunder__ 这种格式的名字,除非要实现 Python 标准协议,比如 __len__;这是为 Python 内部协议保留的命名空间,不应该在其中增加自定义的东西。

    不要用单字符名字

    (不过)一些常见的单字符名字可以接受。

    在 lambda 表达式中,单参数函数可以命名为 x 。比如:

    encode = lambda x: x.encode("utf-8", "ignore")

    解包元组时可以用 _ 丢弃不需要的标记。比如:

    _, url, urlref = data

    意思就是说「忽略第一个元素」。

    和 lambda 类似,在解析列表/字典/集合的时候,以及在生成器表达式或者一到两行的 for 循环中,可以使用单字符迭代标记。通常选择 x,比如:

    sum(x for x in items if x > 0)

    可以求 items 序列中所有正整数之和。

    此外比较常见的是 i,代表 index,通常和内置的 枚举 一起使用。比如:

    for i, item in enumerate(items):
        print("%4s: %s" % (i, item))

    除却上述情形,要极少甚至避免使用单字符用作标记/参数/方法的名字。因为这样就无法用grep 进行检索了。


    下载网 » python编码风格是什么

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元