python 文件的组成

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

#!/usr/bin/env python# -*- coding: utf-8 -*-"""通常这里是关于本文档的说明(docstring),须以半角的句号、 问号或惊叹号结尾!本行之前应当空一行,继续完成关于本文档的说明如果文档说明可以在一行内结束,结尾的三个双引号不需要换行;否则,就要像下面这样"""import os, timeimport datetimeimport mathimport numpy as npimport xlrd, xlwt, xlutilsimport youth_mongodbimport youth_curlBASE_PATH = r"d:YouthGit"LOG_FILE = u"运行日志.txt"class GameRoom(object):    """对局室"""    def __init__(self, name, limit=100, **kwds):        """构造函数!        name        对局室名字        limit       人数上限        kwds        参数字典        """        passdef craete_and_start():    """创建并启动对局室"""    passif __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': 'xufive@sdysit.com'}

引号

  • 自然语言使用双引号
  • 机器标识使用单引号
  • 正则表达式使用双引号
  • 文档字符串 (docstring) 使用三个双引号

注释

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

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

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

age += 1  # 年龄增加一岁

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

    server= gogame(room, options)    # =====================================    # 请勿在此处倾倒垃圾!!!    # =====================================    if __name__ == '__main__':        server.run()

空行

  • 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
  • 顶级定义之间空两行,方法定义之间空一行
  • 在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行

空格

  • 在二元运算符两边各空一格,算术操作符两边的空格可灵活使用,但两侧务必要保持一致
  • 不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)
  • 函数的参数列表中,逗号之后要有空格
  • 函数的参数列表中,默认值等号两边不要添加空格
  • 左括号之后,右括号之前不要加添加空格
  • 参数列表, 索引或切片的左括号前不应加空格

文档字符串

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

导入模块

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

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

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

from math import *

命名规范

  • 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线
  • 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头
  • 函数名一律小写,如有多个单词,用下划线隔开
  • 私有函数可用一个下划线开头
  • 变量名尽量小写, 如有多个单词,用下划线隔开
  • 常量采用全大写,如有多个单词,使用下划线隔开

最后,小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程,想要这些资料的可以关注私信小编“01”即可,希望能对你有所帮助。

python tab和空格混用_我的 Python 编码规范相关推荐

  1. python tab和空格混用_Python编程常见十大错误,看完你自己都笑了!

    关注并置顶[柠檬班]的小哥哥小姐姐 胸有成"猪" 使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法.  01 ValueError ValueErro ...

  2. 不是python文件操作的相关函数_从零开始学Python(七):文件存储I/O流和异常捕捉

    这两天在搞小程序开发,耽搁了一下更新的进度,今天补上.一个完整的前端程序肯定离不开数据存储和网络两个模块,今天我们就先来讲讲python中的一种常见数据存储:文件存储!~! 文件存储(I/O操作) 何 ...

  3. 苹果笔记本python开发第一个程序_第一个Python程序【文章来自老男孩】

    首先我们打开python 交互式解释器, 执行如下命令: Python 3.5.1+ (default, Mar 30 2016, 22:46:26) [GCC 5.3.1 20160330] on ...

  4. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

  5. python中sn的意思_深入了解Python

    一.Python的风格 Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读.易维护,并且被大量用户所欢迎的.用途广泛的语言. 设计者开发时总的指导思想是,对于一个特定的问题,只要 ...

  6. python能做财务分析吗_您可以使用Python进行财务规划和分析吗?

    python能做财务分析吗 问题 (The Problem) If you work in the Financial Planning and Analysis area, chances are ...

  7. python写圆柱的体积_【用python计算圆柱体的体积资讯】用python计算圆柱体的体积足球知识与常识 - 足球百科 - 599比分...

    请大家进行Python安装,完成根据用户输入的半径和高度值,求圆柱体的体积. 这道要用到int(),input()和print().π的取值,可用math模块中的pi,也自己设定为3.14.需要保留特 ...

  8. python一直报缩进错误_如何避免Python中的缩进错误

    Python是当今编程界领先和新兴的编程平台之一.凭借其丰富的功能和巨大的灵活性,人们可以在这个平台上实现很多,只要他们知道如何操作它.在Python中的这个缩进错误中,我们将介 Python是当今编 ...

  9. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

最新文章

  1. python格式化字符串_Python的3种字符串格式化方法,哪种你最喜欢?
  2. 自己闲来无聊弄的python小游戏,turtle实现海龟赛跑
  3. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别
  4. Leetcode 24. Swap Nodes in Pairs
  5. spring boot打包文件后,报错\No such file or directory
  6. Linux命令速查表
  7. currenthashmap扩容原理_高并发编程系列:深入探讨ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)...
  8. SharePoint2007安装图文详解二:安装AD(活动目录)及DNS
  9. 爬虫实战学习笔记_1 爬虫基础+HTTP原理
  10. 前端进阶必备技能:Vue中如何定制动画效果
  11. 【干货】华为企业数字化转型之道.pdf(附下载链接)
  12. dedecms 自定义表单提交后的跳转链接修改方法
  13. jq禁用html标签
  14. 用手机编程和用电脑编程有什么区别?
  15. jQuery扁平化风格手风琴菜单
  16. 程序员学c语言吗,为什么程序员要学C语言
  17. Python经典实验4-字典和集合的应用
  18. cocos2dx 字体外发光_cocos2d-x位图字体生成工具bmfont使用图文教程 美术字使用
  19. 关于VSCODE的插件 一
  20. ETERM放大软件 机票实时查询接口 底层开发接口

热门文章

  1. gem for onenote安装教程
  2. 单E1光端机分类及技术指标详解
  3. 光端机各种类型的接口介绍
  4. 【渝粤题库】国家开放大学2021春2019统计学原理题目
  5. 探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP
  6. 数字信号处理基础知识00
  7. mysql从dos界面_从DOS界面进入MYSQL数据库
  8. 【MFC系列-第24天】梯形分页和蝴蝶QQ宠物的实现
  9. BPSK调制下(2,1,6)标准卷积码及打孔生成2/3、3/4、4/5、5/6删余码Viterbi译码误码率曲线图(MATLAB实现)
  10. android pdu 编码规则,[转载]PDU编码规则