【python命名规范】谷歌风格命名

为了让逐渐增长的代码具有统一的、易读的、可拓展的编程风格,学习了google的开源风格,特别着重记录了Python相关的命名规范,以便在今后的编程中统一命名风格、方便后期维护。

Python中的命名

python中的命名包括了变量、函数、方法、类、工具包和模块等实体,google给出了一系列命名规则建议,以统一代码风格。
Caution
尽量避免单字符的命名,但是可以在计数器和迭代器中使用for i in range(xx)/异常处理中使用 except Error as e:
避免使用横杆-,尽量使用下划线
避免使用双下划线开头的名称,像__name__这样的是python自己的保留关键字

下划线开头:
单下划线_开头意味着受保护的内部变量/函数,不会被import导出
双下划线__开头意味着类的私有变量或方法
内部意味着模块内,类内私有/保护变量/方法;

类命名:利用驼峰命名法 MyClass
模块名:利用小写下划线法:my_modules.py
在测试时可能会有不同的书写方法,例如test<MethodUnderTest>_<state>,或者testPop_EmptyStack

Guido推荐的命名法:

实体公有风格内部
模块my_module_one 小写下划线_my_module_one
my_package_one
MyClass 驼峰法_MyClass
函数my_function_one()
方法名class_metdod_one()保护:_class_metdod_one()
私有:__class_metdod_one()
全局变量my_global_variable_my_global_variable
局部变量my_local_variable
实例变量my_instance_varible保护:_my_instance_varible
私有:__my_instance_varible
全局常量MY_GLOBAL_CONSTANT_MY_GLOBAL_CONSTANT
异常MyExpection

导入

每行只导入一个变量或者一个模块,避免一行导入多个模块:

import os
import sys
import numpy as np

在开头导入!!!

  • 标准导入:import os
  • 第三方包导入:import tensorflow as tf
  • 子工具包导入:from otherproject.ai import mind
    不同导入的方法写在一组内,类似谷歌给出的例子:
import collections
import queue
import sys
#不同部分间使用空行隔开,上面是标准导入、下面是导入第三方工具部分
from absl import app
from absl import flags
import bs4
import cryptography
import tensorflow as tf
# 下面是导入子工具包的部分
from book.genres import scifi
from myproject.backend.hgwells import time_machine
from myproject.backend.state_machine import main_loop
from otherproject.ai import body
from otherproject.ai import mind
from otherproject.ai import soul

# Older style code may have these imports down here instead:
#from myproject.backend.hgwells import time_machine
#from myproject.backend.state_machine import main_loop

注释

短期注释TODO,需要注意三点

  • 1.#TODO开头
  • 2.在后面紧跟括号,注明名字和你的联系方式
  • 3.写清楚这个todo要解决什么问题,在什么条件下解决(时间/其他工作完成条件)
#TODO(hitrjj tom@tom.com): Test this module and add a function, when I have space time
#TODO(tom): Add data io modul untils I receive the data from boss...
#TODO 中不要写fxxk :D

At last:规范命名、做好注释、利人利己

ref:
http://google.github.io/styleguide/pyguide.html
https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
https://www.python-course.eu/python3_exception_handling.php

在这里插入图片描述

原文地址:https://www.cnblogs.com/Tom-Ren/p/11054618.html