python风格

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是一种对代码风格很重视的语言,从缩进就能看出这一点,Python强调易于理解。最近在负责代码重构的工作...
    知曰阅读 11,188评论 1 85
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Python编码规范 1 排版 1.1 Indentation缩进 在参数过多时适当缩进 换行应该使用同级的缩进...
    帝Bug阅读 857评论 0 1
  • 为了便于项目的管理和代码的阅读,养成良好的编码风格以及沟通方便,编码Python代码时应遵循以下编码规范: 每行长...
    NoFacePeace阅读 1,095评论 0 1
  • --< > 令人讨厌的小人物身上有着愚蠢的一致性 --(A Foolish Consistency is the ...
    LittleWizard阅读 3,275评论 0 4