Python代码规范(PEP8)

文章详细介绍了Python编程的官方编码风格指南PEP8,包括使用utf-8编码,包和模块的命名规则,如包名全小写,模块名用下划线,类名驼峰式,以及缩进、空格、空行和换行的规范,还有注释的编写方式等,旨在提升代码的可读性和一致性。
摘要由CSDN通过智能技术生成

官网

PEP 8 – Style Guide for Python Code | peps.python.org

代码编码

  • 编码格式全部为utf-8。在Python代码的开头,要统一加上# -*- coding:utf-8 -*-,以解决乱码问题。

命名规范

  • 包是一个含有__init__的文件夹,模块是一个.py结尾的文件
类型命名规范示例
包(Package)尽量短小,全小写,不推荐使用下划线mypackage
模块(Module)尽量短小,全小写,用下划线my_module.py
类(Class)首字母大写,驼峰,不用下划线MyClass
函数(Function)全小写,用下划线my_function
方法(Method)全小写,用下划线class_method
常量(Constant)全大写,用下划线MY_CONSTANT
变量(Variable)全小写,用下划线my_variable

布局规范

1. 缩进

  • 缩进4个空格

  • 慎用Tab(不是所有解释器中的Tab都占四个空格)

  • 对齐缩进

    • 缩进块与开始分隔符对齐
    foo = long_function_name(var_one, var_two,
                             var_three, var_four)
    
  • 悬挂缩进

    • 段落或语句中除了第一行之外的每一行都缩进,第一行不能有参数
    # 举例1:使用悬挂缩进时,第一行不能有参数
    foo = long_function_name(
        var_one, var_two,
        var_three, var_four)
    
    # 举例2:在续行上使用双缩进,提高可读性
    def long_function_name(
            var_one, var_two, var_three,
            var_four):
        print(var_one)
    

2. 空格

  • 避免空格:

    • 括号里

      # Correct:
      spam(ham[1], {eggs: 2})
      # Wrong:
      spam( ham[ 1 ], { eggs: 2 } )
      
    • 在后面的逗号和后面的右括号之间

      # Correct:
      foo = (0,)
      # Wrong:
      bar = (0, )
      
    • 逗号,冒号,分号之前

      # Correct:
      if x == 4: print(x, y); x, y = y, x
      # Wrong:
      if x == 4 : print(x , y) ; x , y = y , x
      
    • 索引操作中的冒号当作操作符处理,前后要有同样数量的空格(建议没有)

      # Correct:
      ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
      ham[lower:upper], ham[lower:upper:], ham[lower::step]
      ham[lower+offset : upper+offset]
      ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
      ham[lower + offset : upper + offset]
      # Wrong:
      ham[lower + offset:upper + offset]
      ham[1: 9], ham[1 :9], ham[1:9 :3]
      ham[lower : : upper]
      ham[ : upper]
      
    • 紧接在函数调用的左括号之前

      # Correct:
      spam(1)
      # Wrong:
      spam (1)
      
    • 紧接在开始索引或切片的右括号之前

      # Correct:
      dct['key'] = lst[index]
      # Wrong:
      dct ['key'] = lst [index]
      
    • 赋值等操作符前后不能因为对齐而添加多个空格

      # Correct:
      x = 1
      y = 2
      long_variable = 3
      # Wrong:
      x             = 1
      y             = 2
      long_variable = 3
      
  • 二元运算符两边放置一个空格

    • 涉及 =、符合操作符 ( += , -=等)、比较( == , < , > , != , <> , <= , >= , in , not in , is , is not )、布尔( and , or , not )。
    • 当有多个运算符,在优先级最低的运算符附近加空格
    # Correct:
    i = i + 1
    submitted += 1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)
    # Wrong:
    i=i+1
    submitted +=1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
    
  • 关键字参数和默认值参数的前后不要加空格

    # Correct:
    def complex(real, imag=0.0):
        return magic(r=real, i=imag)
    # Wrong:
    def complex(real, imag = 0.0):
        return magic(r = real, i = imag)
    
  • 当将参数注释与默认值组合时,在=符号周围使用空格

    # Correct:
    def munge(sep: AnyStr = None): ...
    def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...
    # Wrong:
    def munge(input: AnyStr=None): ...
    def munge(input: AnyStr, limit = 1000): ...
    

3. 空行

  • 空两行:
    • 函数与函数/类之间
    • 导入部分与其他之间
  • 空一行:
    • 类中函数之间
    • 每组导入部分之间,分三组:
      • 标准库导入
      • 相关的第三方进口
      • 本地应用程序/库特定导入
    • 函数内部,用于清晰显示步骤

4. 换行

  • 隐含延续:如果代码包含在圆括号、方括号或大括号中,Python将假定行继续

    # Correct:
    # 易于将运算符与操作数匹配
    income = (gross_wages
              + taxable_interest
              + (dividends - qualified_dividends)
              - ira_deduction
              - student_loan_interest)
    # Wrong:
    # 运算符远离其操作数
    income = (gross_wages +
              taxable_interest +
              (dividends - qualified_dividends) -
              ira_deduction -
              student_loan_interest)
    
  • 如果不能用隐含延续,用反斜杠换行

5. 注释

  • 同行
    • 用>=2个空格分隔语句和注释
    • 用1个空格分隔#和注释内容
  • 换行
    • 格式:用#开头,后跟一个空格
    • 缩进:注释块缩进到与被描述的代码相同的级别
    • 长度:注释长度不得超过79个字符
    • 其他:如果注释较多,也可以对注释分段
  • 文档
    • 用"""或’’’
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PEP 8是Python代码样式指南,它提供了一些规范和建议,以帮助开发者编写更具可读性和一致性的Python代码。根据PEP 8,以下是一些常见的规范和建议: 1. 文件编码:在Python文件的开头添加文件编码声明,通常使用UTF-8编码。 2. 导入顺序:按照先导入Python包,再导入第三方包,最后导入自定义的包的顺序进行导入。这样可以更清晰地组织导入语句。 3. 避免使用import *:尽量避免使用import *来导入所有模块,因为这样会导致命名空间污染和代码可读性降低。 4. 返回值:确保每个return语句都能有返回值,不能返回的应显式地返回None。这样可以提高代码的可读性和可维护性。 以上是PEP 8中的一些规范和建议,遵循这些规范可以使你的Python代码更加规范和易于理解。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Python-Python编码规范PEP8)](https://blog.csdn.net/lady_killer9/article/details/109150536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* [python编码规范pep8](https://blog.csdn.net/m0_46673598/article/details/126274989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值