腾讯大佬的 Python 编码规范

文末有干货 “Python高校”,马上关注
真爱,请置顶或星标

版权声明:本文为CSDN博主「天元浪子」 

原文链接:https://blog.csdn.net/xufive/article/details/84957425

python 文件的组成

为了便于描述,先上一个 demo

#!/usr/bin/env python
# -*- coding: utf-8 -*-




"""通常这里是关于本文档的说明(docstring),须以半角的句号、 问号或惊叹号结尾!


本行之前应当空一行,继续完成关于本文档的说明
如果文档说明可以在一行内结束,结尾的三个双引号不需要换行;否则,就要像下面这样
"""




import os, time
import datetime
import math


import numpy as np
import xlrd, xlwt, xlutils


import youth_mongodb
import youth_curl




BASE_PATH = r"d:\YouthGit"
LOG_FILE = u"运行日志.txt"




class GameRoom(object):
    """对局室"""


    def __init__(self, name, limit=100, **kwds):
        """构造函数!


        name        对局室名字
        limit       人数上限
        kwds        参数字典
        """


        pass




def craete_and_start():
    """创建并启动对局室"""


    pass




if __name__ == '__main__':
    # 开启游戏服务
    start()


Linux 平台上,一个 python 源码文件应该以下部分组成。Windows 平台上,可以省略第一项。

  1. 解释器声明

  2. 编码格式声明

  3. 模块注释或文档字符串

  4. 模块导入

  5. 常量和全局变量声明

  6. 顶级定义(函数或类定义)

  7. 执行代码

编码格式声明

通常,编码格式声明是必需的。如果 python 源码文件没有声明编码格式,python 解释器会默认使用 ASCII 编码,一旦源码文件包含非ASCII编码的字符,python 解释器就会报错。以 UTF-8 为例,以下两种编码格式声明都是合乎规则的。

# -*- coding: utf-8 -*-
# coding = utf-8

我一直 UTF-8 编码格式,喜欢使用第一种声明方式。

Windows 平台上,编码格式声明必须位于 python 文件的第一行。Linux 平台上,编码格式声明通常位于 python 文件的第二行,第一行是 python 解释器的路径声明。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

缩进

统一使用 4 个空格进行缩进。绝对不要用tab, 也不要tab和空格混用。对于行连接的情况,我一般使用4空格的悬挂式缩进。例如:

var_dict = {
    'name': 'xufive',
    'mail': '[email protected]'
}

引号

  • 自然语言使用双引号

  • 机器标识使用单引号

  • 正则表达式使用双引号

  • 文档字符串 (docstring) 使用三个双引号


注释

#号后空一格,段落件用空行分开(同样需要#号):

    # 块注释
    # 块注释
    #
    # 块注释
    # 块注释

行内注释,至少使用两个空格和语句分开:

age += 1  # 年龄增加一岁

比较重要的注释段, 使用多个等号隔开, 可以更加醒目, 突出重要性:

    server= gogame(room, options)


    # =====================================
    # 请勿在此处倾倒垃圾!!!
    # =====================================


    if __name__ == '__main__':
        server.run()

空行

  • 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行

  • 顶级定义之间空两行,方法定义之间空一行

  • 在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行

空格

  • 在二元运算符两边各空一格,算术操作符两边的空格可灵活使用,但两侧务必要保持一致

  • 不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)

  • 函数的参数列表中,逗号之后要有空格

  • 函数的参数列表中,默认值等号两边不要添加空格

  • 左括号之后,右括号之前不要加添加空格

  • 参数列表, 索引或切片的左括号前不应加空格

文档字符串

文档字符串是包、模块、类或函数里的第一个语句。这些字符串可以通过对象的__doc__成员被自动提取,并且被pydoc所用。文档字符串的使用三重双引号(""")。如果文档字符串内容不能在一行内写完,首行须以句号、 问号或惊叹号结尾,接一空行,结束的三重双引号必须独占一行。

导入模块

导入总应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。导入应该按照从最通用到最不通用的顺序分组,分组之间空一行:

  1. 标准库导入

  2. 第三方库导入

  3. 应用程序指定导入

应当避免使用以下的导入方法:

from math import *

命名规范

  • 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线

  • 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头

  • 函数名一律小写,如有多个单词,用下划线隔开

  • 私有函数可用一个下划线开头

  • 变量名尽量小写, 如有多个单词,用下划线隔开

  • 常量采用全大写,如有多个单词,使用下划线隔开



推荐:开源库Python 开发者必知的 11 个 Python GUI 库10款 Web开发最佳的 Python 框架推荐 GitHub 上100天学习 Python的开源项目Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!
Facebook 开源的 Python 预测工具,用起来太方便了
电子书
我总结的82页《Python之路V1.1.pdf》,都是干货520 页机器学习笔记!图文并茂可能更适合你,文末附下载方法
541页的《利用Python进行数据分析》(附电子书和源码下载)
下载 | 《Python数据科学速查表中文版》
一款百度网盘不限速500Kb下载神器面试
我用  Python 爬了天猫内衣店的数据Python爬完数据后,我终于买车不用坐引擎盖哭啦1年工作经验,拿下今日头条 Python 开发面经分享!
Python 面试中 8 个必考问题面试 4 个月,最终入职微软!
10 家公司 Python 面试题总结面试了9家公司,拿到5份Offer
面试Python怕? 你想要的315道题都在这了
如何拿到半数面试公司Offer——我的Python求职之路
学习路线基于TensorFlow 2.0的中文深度学习开源书来了!GitHub趋势日榜第一,斩获2K+星微软官方上线了Python 教程,7个章节就把Python说通了
最全 14 张思维导图:教你构建 Python 编程的核心知识体系  Python 从入门到精通:一个月就够了!  24招加速你的Python,超级实用!即学即用的 30 段 Python 非常实用的代码
Python的 5 种高级用法,效率提升没毛病!
花了三个月终于把所有的Python库全部整理了!可以说很全面了工具最靠谱的Pycharm 汉化安装+ 破解详细教程!
Python数据分析、挖掘常用工具Python 最强 IDE 详细使用指南!一款 Python 自动抢票神器,收藏起来回家不愁!
实践和数据分析Python 开发植物大战僵尸游戏用 Python 来找合适的妹子一键分析你上网行为,看你是在认真工作还是摸鱼Python给照片换底色,基于opencv模块
10个经典的小技巧:快速用 Python 进行数据分析
使用 Python 进行微信好友分析爬虫我给曾经暗恋的初中女同学,用Python实现了她飞机上刷抖音
为了能早点买房,我用 Python 预测房价走势!
被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器
谁偷偷删了你的微信?别慌!Python 揪出来为了给女友挑合适的内衣,我用  Python 爬了天猫内衣店的数据Python爬完数据后,我终于买车不用坐引擎盖哭啦算法机器学习必学10大算法
哈工大硕士生用Python实现了11种数据降维算法,代码已开源!
Github标星3w+,热榜第一,如何用Python实现所有算法
Python算法:如何解决回文索引问题
Python算法:如何解决楼梯台阶问题看完本文有收获?请转发分享给更多人

你可能感兴趣的:(编程语言,python,aix,xhtml,人工智能)