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变量 ...
随机推荐
- 实验二Step1-有序顺序表
#include<stdio.h> struct job { ];//作业名称 char status;//当前状态 int arrtime;//到达时间 int reqtime;//要求 ...
- Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(二)
SpringMVC.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
- spring使用jackson返回object报错:Handler execution resulted in exception: Could not find acceptable representation
问题:在springmvc中添加Jackson jar包返回Object类型,处理器方法的produces属性不写,默认根据类型,但如果指定了(错误原因)produces = "text/h ...
- 知名黑客组织Anonymous(匿名者)的装备库
原文出处: infosecinstitute 译文出处:freebuf 欢迎分享原创到伯乐头条 本文关注的是世界著名的黑客组织Anonymous(匿名者).“我将描述他们的攻击方法和方式的计划 ...
- 10个必备的移动UI设计资源站(转)
创建移动设计模式是非常重要的一步,记住!这是为移动设备设计而不是web.不仅仅是移动屏幕远小于普通的电脑屏幕,关键是鼠标和键盘已经被手指替代了! 当然还有更重要的,说起来很苦逼,我们再也不能使用一种模 ...
- word2013设置页面边框
如图:
- 利用VBoxManage对虚拟机格式vdi、vmdk、vhd进行互转
虚拟机顾名思义就是虚拟出来的机器(virtual machine),虚拟化技术也是时下IT界最热门的技术,因其能更加有效利用硬件资源,整合IT应用,降低TCO,节能环保等,说白了就是一台硬件上够强 ...
- WebAPI用法
ASP.NET Web API(一):使用初探,GET和POST数据[Parry] HttpClient + ASP.NET Web API, WCF之外的另一个选择[dudu] 通过这两篇文章让我了 ...
- Spring的web应用启动加载数据字典方法
在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener 实现其中的contextIniti ...
- oracle表分区【转】
摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十 ...