美文网首页
python风格

python风格

作者: 咚咚董dyh | 来源:发表于2017-10-31 23:16 被阅读0次

    python风格

    命名规范

    The following naming styles are commonly distinguished:

    b (single lowercase letter)
    B (single uppercase letter)
    lowercase
    lower_case_with_underscores
    UPPERCASE
    UPPER_CASE_WITH_UNDERSCORES
    CapitalizedWords (or CapWords, or CamelCase -- so named because of the bumpy look of its letters [3] ). This is also sometimes known as StudlyCaps.
    Note: When using abbreviations in CapWords, capitalize all the letters of the abbreviation. Thus HTTPServerError is better than HttpServerError.
    mixedCase (differs from CapitalizedWords by initial lowercase character!)

    1. 模块名:
      lowercase / lower_case_with_underscores,小写字母,单词之间用_分割. 如ad_stats.py

    2. 包名:
      lowercase,尽量不要使用_,部分系统不支持。就是文件夹名。

    3. 类名:
      CapitalizedWords,单词首字母大写。部分异常名和内建变量名也采用CapWords。如AdStats, ConfigUtil
      4.异常名
      异常也是类,同类名。如果是错误,用“Error”后缀

    4. 全局变量名:
      lowercase / lower_case_with_underscores,类似函数的命名规范, 建议指模块内部使用的全局变量。可以通过from M import *调用,通过__all__机制限制调用。

    5. 函数名:
      lowercase / lower_case_with_underscoresmixedCase仅在先前代码中这种风格占据优势的情况下使用,以保持向后兼容。如get_name()

    6. 函数和方法参数
      Always use self for the first argument to instance methods. Always use cls for the first argument to class methods.

    7. 方法名和实例变量
      lowercase / lower_case_with_underscores,类似函数的命名规范。可以采用_前缀标志内部使用。采用命名重整规则来避免和子类的命名冲突。

    8. 常量
      UPPERCASE / UPPER_CASE_WITH_UNDERSCORES,用于模块水平。

    9. 继承的设计
      始终要确定一个类中的方法和实例变量是否要被公开. 通常, 永远不要将数据变量公开, 除非你实现的本质上只是记录. 人们总是更喜欢给类提供一个函数的接口作为替换 (Python 2.2 的一些开发者在这点上做得非常漂亮).

      同样, 确定你的属性是否应为私有的. 私有与非公有的区别在于: 前者永远不会被用在一个派生类中, 而后者可能会. 是的, 你应该在大脑中就用继承设计好了你的类. 私有属性必须有两个前导下划线, 无后置下划线. 非公有属性必须有一个前导下划线, 无后置下划线.

      公共属性没有前导和后置下划线, 除非它们与保留字冲突, 在此情况下, 单个后置下划线比前置或混乱的拼写要好, 例如: class_优于klass. 最后一点有些争议; 如果相比class_你更喜欢klass, 那么这只是一致性问题.

      注意: 'cls' is the preferred spelling for any variable or argument which is known to be a class, especially the first argument to a class method.

    另外,以下特殊形式可以和以上任何情况结合使用:

    1. 弱“内部使用”标志 / 非公有属性:
      _开头,from M import *不会导入以下划线开头的对象/方法/实例变量,但是子类可以使用。如_get_price(), _instance_var

    2. 类私有属性 / 方法:
      __开头(2个下划线),外部调用采用命名重整规则即, inside class FooBar,__boo becomes _FooBar__boo。一般情况下仅用于当属性可被子类继承时,避免与子类的命名冲突。如__private_var, __get_name()

    3. 魔法对象或属性:
      __开头,__结尾,一般为python的自有变量,不要以这种方式命名. 如__doc__, __class__

    4. 下划线_后缀:
      和保留字冲突的时候使用

    5. __all__机制

      __all__=["fun","class"]
      

      __all__可用于模块导入时限制,如:from module import *,此时被导入模块若定义了__all__属性,则只有__all__内指定的属性、方法、类可被导入。若没定义,则模块内的所有非私有方法/属性/类将被导入。

    术语

    类的方法和实例变量统称为属性,a class's methods and instance variables (collectively: "attributes")。

    python包含packages, modules, classes, functions, attributes等

    相关文章

      网友评论

          本文标题:python风格

          本文链接:https://www.haomeiwen.com/subject/bmmipxtx.html