Python命名规范
Python 标识符
参见:https://docs.python.org/3/reference/lexical_analysis.html?highlight=identifier#identifiers
在python里,标识符有字母、数字、下划线组成,并且不能使用Python中的保留字。
在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
Python保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
首先在命令行先看一下Python有哪些保留字。
import keyword
keyword.kwlist
输出:['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
| 保留字 | 说明 | 保留字 | 说明 |
| False |
The false value of the bool type。内置常量 bool类型false |
global |
定义全局变量 |
| None | 内置常量表示没有 | if | 条件语句,与else、elif结合使用 |
| True | The true value of the bool type。内置常量bool类型true | import | 用于导入模块,与from结合使用 |
| and | 用于表达式运算,逻辑与操作 | in | 判断变量是否在序列中 |
| as | 用于类型转换 | is | 判断变量是否为某个类的实例 |
| assert | 断言,用于判断变量或者条件表达式的值是否为真 | lambda | 定义匿名行数 |
| break | 中断循环语句的执行 | nonlocal | 用来在函数或其他作用域中使用外层(非全局)变量 |
| class | 用于定义类 | not | 表达式运算,逻辑非操作 |
| continue | 结束本次循环继续下一次循环 | or | 表达式运算,逻辑或操作 |
| def | 定义函数或方法 | pass | 空的类、方法或者函数的占位符 |
| elif | 条件控制语句,与if、else结合使用 | raise | 异常抛操作 |
| esle | 条件控制语句,与if、elif结合使用 | return | 从函数返回计算结果 |
| except | except包含异常捕获后的操作代码块与try、finally结合使用 | try | 包含可能会出现的代码块,与except、finally结合使用 |
| finally | 用于异常语句,异常捕获后,始终要执行finally包含的代码块,与try、except结合使用 | while | while循环 |
| for | for循环语句 | with | 简化Python的语句 |
| from | 用于导入模块,与import结合使用 | yield | 从函数依次返回值 |
参见:https://www.python.org/dev/peps/pep-0008/
尽量避免使用难区分的字母"l"、"o"数字"1"、"0"。
1.变量名、包名、模块名
变量名通常由字母、数字、下划线组成,以字母或下划线开头,包名、模块名通常采用简短的小写字母,提高可读性模块名中也可以包含下划线,包命中不推荐使用下划线。
#Filename:rulemodle.py _rule = "rule information"
第一行是程序注释行,用于声明模块的名称,模块名用小写字母,也可以不指定模块名称,以.py后缀的文件就是一个模块,文件名就是模块名。
2.类名、对象名
类名首字母大写,其他字母采用小写。对象名用小写字母。内部使用的类在类名前加单下划线。
类的属性和方法名以对象作为前缀,对象通过操作符"."访问属性和方法。类的私有变量和私有方法以两个下划线作为前缀。
class Student: #类名,首字母大写
__name = '' #私有变量,以__开头
def __init__(self,name): #self相当于java中的this
self.__name = name
def getName(self):
return self.__name
if __name__ =="__main__":
student = Student("zhaowei") #对象名,小写字母
print(student.getName())
3.函数名
函数名通常采用小写,必要时使用下划线区分单词以提高可读性。
mixedCase(首字母小写,后面以单词首字母大写分割单词)只适用于保持风格以及向下兼容。
导入的函数以模块名作为前缀。
import random #导入模块
def compareNum(num1,num2): #定义函数
if(num1 > num2):
print("num1 : %d > num2 : %d"%(num1,num2))
elif(num1 == num2):
print("num1 : %d == num2 : %d"%(num1,num2))
else:
print("num1 : %d < num2 : %d"%(num1,num2))
num1 = random.randrange(1,9) #调用模块的函数
num2 = random.randrange(1,9)
compareNum(num1,num2)
4.异常名
因为异常也是类,所以类的命名习惯在这里也适用。不同的是,如果异常实际上是个错误,则需要在异常名字的后面使用Error后缀
5.全局变量名
全局变量名
我们假设这些变量都是在模块内部使用的。命名所遵循的规则跟函数的命名规则基本相同。
Python命名规范的更多相关文章
- python—命名规范(转)
文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...
- Google Python命名规范
Google Python命名规范 module_name, 模块 package_name, 包 ClassName, 类 method_name, 方法 ExceptionName, ...
- python—命名规范
文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...
- Google Python 命名规范
Google Python命名规范 module_name, 模块 package_name, 包 ClassName, 类 method_name, 方法 ExceptionName, ...
- python 命名规范
参考Google开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/cont ...
- Python 命名规范总结
Python推荐命名规范: 模块名和包名采用小写字母并且以下划线分隔单词的形式: 如:browser_driver 类名或异常名采用每个单词首字母大写的方式: 如:BasePage, Keyboard ...
- python 命名规范最近遇到的问题
1.remove redundant parentheses 出去多余的括号,写C#习惯了先加个括号,python的if不用加括号. 改为:if chrome_args().get("hea ...
- python 中变量的命名规范
出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py ...
- Python变量命名规范
模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...
随机推荐
- 为什么要使用SLF4J而不是Log4J
每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging.Apache log4j.lo ...
- arcgis API for javascript 学习笔记
ArcGis Server地图是缓存的,意味着它有服务器管理员简历提示性能的一组预先渲染的切片.由于这个原因地图通过ArcGISTiledMapServiceLayer表示 如果地图服务没有一个可用的 ...
- (01)odoo模型中调用窗体动作
*模型代码 addons/stock/stock.py ---------------- #移库单执行移库动作(弹出详细框) @api.cr_uid_ids_context def ...
- (02)odoo自定义模块
* 官方建议模块骨架 -------------------------- addons/<my_module_name>/ │─ __init ...
- 课程设计(部分代码)之java版(记事本)
/* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查找替换等功能. * 提示:使用文件输入输出流 ...
- 《精通javascript》几个简单的函数
转载http://www.cnblogs.com/jikey/archive/2011/07/25/2116696.html /** * 隐藏元素 * @param {String} elem */f ...
- orcl
Class.forName("orcle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnecti ...
- NSException
NSException是什么? 最熟悉的陌生人,这是我对NSException的概述,为什么这么说呢?其实很多开发者接触到NSException的频率非常频繁,但很多人都不知道什么是NSExcepti ...
- 冲销交货单WS_REVERSE_GOODS_ISSUE
LOOP AT ITAB. AT END OF VBELN. PERFORM FRM_LOCK_DELIVERY(ZSDS0002) USING ITAB-VBELN. CALL FUNCTION ' ...
- CentOS 6.2下SVN服务器的安装与配置
安装了一下SVN服务器,本文没有与Apache整合,过程如下: 一,下载相关软件: [root@youxia201 test]# wget http://subversion.tigris.org/d ...