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命名规范的更多相关文章

  1. python—命名规范(转)

    文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...

  2. Google Python命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  3. python—命名规范

    文件名全小写,可使用下划线 包应该是简短的.小写的名字.如果下划线可以改善可读性可以加入.如mypackage. 模块与包的规范同.如mymodule. 类总是使用首字母大写单词串.如MyClass. ...

  4. Google Python 命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  5. python 命名规范

    参考Google开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/cont ...

  6. Python 命名规范总结

    Python推荐命名规范: 模块名和包名采用小写字母并且以下划线分隔单词的形式: 如:browser_driver 类名或异常名采用每个单词首字母大写的方式: 如:BasePage, Keyboard ...

  7. python 命名规范最近遇到的问题

    1.remove redundant parentheses 出去多余的括号,写C#习惯了先加个括号,python的if不用加括号. 改为:if chrome_args().get("hea ...

  8. python 中变量的命名规范

    出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py ...

  9. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

随机推荐

  1. 实验二Step1-有序顺序表

    #include<stdio.h> struct job { ];//作业名称 char status;//当前状态 int arrtime;//到达时间 int reqtime;//要求 ...

  2. Hibernate4+Spring JPA+SpringMVC+Volecity搭建web应用(二)

    SpringMVC.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  3. spring使用jackson返回object报错:Handler execution resulted in exception: Could not find acceptable representation

    问题:在springmvc中添加Jackson jar包返回Object类型,处理器方法的produces属性不写,默认根据类型,但如果指定了(错误原因)produces = "text/h ...

  4. 知名黑客组织Anonymous(匿名者)的装备库

    原文出处: infosecinstitute   译文出处:freebuf   欢迎分享原创到伯乐头条 本文关注的是世界著名的黑客组织Anonymous(匿名者).“我将描述他们的攻击方法和方式的计划 ...

  5. 10个必备的移动UI设计资源站(转)

    创建移动设计模式是非常重要的一步,记住!这是为移动设备设计而不是web.不仅仅是移动屏幕远小于普通的电脑屏幕,关键是鼠标和键盘已经被手指替代了! 当然还有更重要的,说起来很苦逼,我们再也不能使用一种模 ...

  6. word2013设置页面边框

    如图:

  7. 利用VBoxManage对虚拟机格式vdi、vmdk、vhd进行互转

      虚拟机顾名思义就是虚拟出来的机器(virtual machine),虚拟化技术也是时下IT界最热门的技术,因其能更加有效利用硬件资源,整合IT应用,降低TCO,节能环保等,说白了就是一台硬件上够强 ...

  8. WebAPI用法

    ASP.NET Web API(一):使用初探,GET和POST数据[Parry] HttpClient + ASP.NET Web API, WCF之外的另一个选择[dudu] 通过这两篇文章让我了 ...

  9. Spring的web应用启动加载数据字典方法

    在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener 实现其中的contextIniti ...

  10. oracle表分区【转】

          摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十 ...