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变量 ...
随机推荐
- Linux服务器下用svn创建多个项目
(1): 创建svn仓库路径 mkdir -p /opt/svn/project1 mkdir -p /opt/svn/project2 svnadm ...
- javaSE之如何将一个文件复制到另一个文件
/* * (1). 文件字符输入,输出流 * 文件字节输入,输出流的read和write方法使用 * 字节数组读写数据,即以字节为单位处理数据,因此,字节流不能很好的操作Unicode字符 * ,比如 ...
- 张艾迪(创始人):拥抱单身与自由的Eidyzhang
拥抱单身与自由(Single+Freedom) 拥抱伟大的梦想与理想.年轻一代的张扬与自信 拥抱AOOOiA.Global.224C的一切是我对这个世界的态度 +AOOOiA.Global.224C创 ...
- Ext.data.Store动态修改url
store.proxy = new Ext.data.HttpProxy({url:path}); 示例: var ad_store = new Ext.data.JsonStore({ fields ...
- BZOJ3999 [TJOI2015]旅游
题面:给定一个有$n$个节点的树,每个点又点权$v_i$,每次选取一条树链$[a, b]$,求出$max(v_i - v_j)$,其中$i, j \in [a, b]$且$i$出现在$j$前面,最后树 ...
- 修改weblogic部署的应用名称
通过weblogic管理后台console进行发布本地项目的时候,它会默认以WEB-INF的上一级目录作为访问路径,如,假如你的项目WEB-INF目录的上一层是WebRoot,那么发布后,访问的路径默 ...
- useradd/du/df/passwd/usermod命令
一.useradd命令 useradd命令-M -u -s -g 常用 -c:加上备注文字,备注文字保存在passwd的备注栏中. -d:指定用户登入时的启始目录. -D:变更预设值.(修改默认配置 ...
- java之进制转换
[转载]晨风�0�5�0�2�0�1�6�6 2014年03月08日 于 爱Java 发表 众所周知.程序世界计算机中采用的是二进制,一个数字可以用任意进制表示.所以看一个数据值的同时.还要观察它的进 ...
- 分批次从musql取数据,每次取1000条
$t = new Gettags(); $num=$t->sum_tag(); $num=$num/1000; $flag_num=ceil($num); $flag_array=array() ...
- Winform在一个窗体获取其他窗体的值
比如:Form2获取Form1 的label的值 因为默认的窗体的所有控件属性和方法都是private, Form1 form1 = new Form1(); 这样也是获取不到的 方法一.最简单的 将 ...