PEP代码规范简单总结

PEP代码规范

1 当一个判断条件太长以致于要换行的时候,可以使用()将他们括起来,更好的可读性。()会隐式的将他们连接起来

  • if 'a' == 'bba' and 'b' in ['bb','sds'] and isinstance('c',str) or a+b <= 10:
        print('sss')
    # 可以改写为以下代码
    if ('a' == 'bba' and 'b' in ['bb','sds'] and 
        isinstance('c',str) or a+b <= 10):
        print('sss')
    

2 注释不需要强行对齐,因为这会增加维护的难度

3 代码注释不需要描述代码,只需要说代码大概是干嘛的

4 如果一个类不继承其他类,就显式的从object继承

  • 继承自object是为了使属性(properties)正常工作,可以保护代码

5 对于字符串的累加,避免在循环中使用 ++= 进行字符串累加

  • 由于字符串是不可变的,这样做会创建不必要的临时对象,并且导致二次方而不是线性的运行时间。

  • 作为替代方案,可以将每个字符串加入列表,然后再循环结束后用join()连接列表,也可以将每个字符串写入一个cStringIO.StringIO缓存中

  • Yes

    • item = ['<table>']
      for last_name, first_name in employee_list:
      	items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name))
      item.append('</table>')
      employee_table = ''.join(items)
      
  • No

    • employee_table = '<table>'
      for last_name, first_name in employee_list:
          employee_table += '<tr><td>%s, %s</td></tr>' %(last_name, first_name)
      emplyee_table += '</table>'
      

6 文件和sockets

  • 1在文件和sockets结束时,显示的关闭它
  • 使用with语句以管理文件,会调用类中的__enter__()__exit__()方法。
    • 对于不支持使用with语句的类似文件的对象,使用contextlib.closing()语句

7 TODO注释

为了更好的记录临时代码,以及为了将来更好的找到哪些代码被标记了待处理,可以使用以下格式进行记录

可以添加邮箱、姓名、以及日期,为了更好的检索

# TODO(dujuntong33@163.com):这行代码有xx问题,还有什么xx问题没有处理 # TODO(dujuntong):xxxx #TODO(2021年4月解决)

8 导入格式

每个导入应该独占一行

Yes:
    import os
	import sys
No:
    import os,sys

导入应该按照从最通用到最不通用的顺序分组

  • 1 标准库导入
  • 2 第三方库导入
  • 3 应用程序指定导入

9 命名规范

TypePublicInternal
Moduleslower_with_under_lower_with_under
Packageslower_with_under
ClassedCapWords_CapWords
ExceptionsCapWords
Functionslower_with_under()_lower_with_under()
Global/Class ConstantsCAPS_WITH_UNDER_CAPS_WITH_UNDER
Global/Class Variableslower_with_under_lower_with_under
Instance Variableslower_with_under_lower_with_under(protected) or __lower_with_under(private)
Method Nameslower_with_under()_lower_with_under()(protected) or __lower_with_under()(private)
Function/Method Parameterslower_with_under
Local Variableslower_with_under
  • 使用下划线(_)开头表示模块变量或函数是protected的(使用import * from 时不包含)
  • 双下划线(__)开头的实例变量或方法表示类内私有

10 Main

  • 代码应该在执行主程序前总是检查if __name__ == '__main__',这样当模块被导入时主程序就不会被执行

  • def main():
        ...
    
    if __name__ == '__main__':
        main()
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值