• Python PEP8 编码规范 命名规范


      Python库的命名规范很乱,从来没能做到完全一致。但是目前有一些推荐的命名标准。新的模块和包(包括第三方框架)应该用这套标准,但当一个已有库采用了不同的风格,推荐保持内部一致性。

    最重要的原则

      那些暴露给用户的API接口的命名,应该遵循反映使用场景而不是实现的原则。

    描述:命名分格

      有许多不同的命名风格。这里能够帮助大家识别正在使用什么样的命名风格,而不考虑他们为什么使用。 

    以下是常见的命名方式:

    • b(单个小写字母)
    • B(单个大写字母)
    • lowercase 小写字母
    • lower_case_with_underscores 使用下划线分隔的小写字母
    • UPPERCASE 大写字母
    • UPPER_CASE_WITH_UNDERSCORES 使用下划线分隔的大写字母
    • CapitalizedWords(或者叫 CapWords,或者叫CamelCase 驼峰命名法 —— 这么命名是因为字母看上去有起伏的外观5)。有时候也被称为StudlyCaps。 
      注意:当在首字母大写的风格中用到缩写时,所有缩写的字母用大写,因此,HTTPServerError 比 HttpServerError 好。
    • mixedCase(不同于首字母大写,第一个单词的首字母小写)
    • Capitalized_Words_With_Underscores(巨丑无比!)

      也有用唯一的短前缀把相关命名组织在一起的方法。这在Python中不常用,但还是提一下。比如,os.stat()函数中包含类似以st_mode,st_size,st_mtime这种传统命名方式命名的变量。(这么做是为了与 POSIX 系统的调用一致,以帮助程序员熟悉它。) 

      X11库的所有公共函数都加了前缀X。在Python里面没必要这么做,因为属性和方法在调用的时候都会用类名做前缀,函数名用模块名做前缀。 

    另外,下面这种用前缀或结尾下划线的特殊格式是被认可的(通常和一些约定相结合):

    • _single_leading_underscore:(单下划线开头)弱“内部使用”指示器。比如 from M import * 是不会导入以下划线开始的对象的。
    • single_trailing_underscore_:(单下划线结尾)这是避免和Python内部关键词冲突的一种约定,比如:Tkinter.Toplevel(master, class_=’ClassName’)
    • __double_leading_underscore:(双下划线开头)当这样命名一个类的属性时,调用它的时候名字会做矫正(在类FooBar中,__boo变成了_FooBar__boo;见下文)。
    • __double_leading_and_trailing_underscore__:(双下划线开头,双下划线结尾)“magic”对象或者存在于用户控制的命名空间内的属性,例如:__init__,__import__或者__file__。除了作为文档之外,永远不要命这样的名。

    应避免的名字

      永远不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。 
      在有些字体里,这些字符无法和数字0和1区分,如果想用‘l’,用‘L’代替。

    包名和模块名

      模块应该用简短全小写的名字,如果为了提升可读性,下划线也是可以用的。Python包名也应该使用简短全小写的名字,但不建议用下划线。 
      当使用C或者C++编写了一个依赖于提供高级(更面向对象)接口的Python模块的扩展模块,这个C/C++模块需要一个下划线前缀(例如:_socket)

    类名

      类名一般使用首字母大写的约定。 
      在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。 
      注意,对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。

    异常名

      因为异常一般都是类,所有类的命名方法在这里也适用。然而,你需要在异常名后面加上“Error”后缀(如果异常确实是一个错误)。

    全局变量名

      我们希望这一类变量只在模块内部使用。)约定和函数命名规则一样。 
      通过 from M import * 导入的模块应该使用all机制去防止内部的接口对外暴露,或者使用在全局变量前加下划线的方式(表明这些全局变量是模块内非公有)。

    函数名

      函数名应该小写,如果想提高可读性可以用下划线分隔。 
      大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用(比如 threading.py),保持向后兼容性。

    函数和方法参数

      始终要将 self 作为实例方法的的第一个参数。 
      始终要将 cls 作为类静态方法的第一个参数。 
      如果函数的参数名和已有的关键词冲突,在最后加单一下划线比缩写或随意拼写更好。因此 class_ 比 clss 更好。(也许最好用同义词来避免这种冲突)

    方法名和实例变量

      遵循这样的函数命名规则:使用下划线分隔小写单词以提高可读性。 
      在非共有方法和实例变量前使用单下划线。 
      通过双下划线前缀触发Python的命名转换规则来避免和子类的命名冲突。 
      Python通过类名对这些命名进行转换:如果类 Foo 有一个叫 __a 的成员变量, 它无法通过 Foo.__a 访问。(执着的用户可以通过 Foo._Foo__a 访问。)一般来说,前缀双下划线用来避免类中的属性命名与子类冲突的情况。 
      注意:关于__names的用法存在争论。

    常量

      常量通常定义在模块级,通过下划线分隔的全大写字母命名。例如: MAX_OVERFLOW 和 TOTAL。

    其他后续更新:

      https://blog.csdn.net/ratsniper/article/details/78954852

  • 相关阅读:
    Python去掉字符串中空格的方法
    python:list
    python3元组
    定时任务cron
    python字典:(Dictionary)操作详解
    SQL语句-基础
    linux免密码登陆
    linux开机故障解决方法
    您应升级到 MySQL 5.5.0 或更高版本。 phpmyadmin
    mysql忘记密码
  • 原文地址:https://www.cnblogs.com/40kuai/p/9351674.html
Copyright © 2020-2023  润新知