在我们学习Python编码规范的过程中,其中命名约定是一个比较重要的知识点。我们需要对这方面的知识有一个充分的认知。在这里我们就会针对Python命名约定的相关内容做一个系统的讲解。#t#
Python命名约定之模块名
模块应该是不含下划线的,简短的,小写的名字。因为模块名被映射到文件名,有些文件系统大小写不敏感并且截短长名字,模块名被选为相当短是重要的,这在Unix上不是问题,但当代码传到Mac或Windows上就可能是个问题了。
当用C或C++编写的扩展模块有一个伴随Python模块提供高层(例如进一步的面向对象)接口时,C/C++模块有下划线前导(如:_socket)。Python包应该是不含下划线的,简短的,全小写的名字。
Python命名约定之类名
几乎不出意料,类名使用CapWords约定。内部使用的类外加一个前导下划线。
Python命名约定之异常名
如果模块对所有情况定义了单个异常,它通常被叫做“error”或“Error”。似乎内建(扩展)的模块使用“error”(例如:os.error),而Python模块通常用“Error” (例如:xdrlib.Error)。趋势似乎是倾向使用CapWords异常名。
Python命名约定之全局变量名
(让我们祈祷这些变量仅在一个模块的内部有意义)
这些约定和在函数中的一样。模块是被设计为通过“from M import *”来使用的,必须用一个下划线作全局变量(及内部函数和类)的前缀防止其被导出(exporting)。
Python命名约定之函数名
函数名应该为小写,可能用下划线风格单词以增加可读性。mixedCase仅被允许用于这种风格已经占优势的上下文(如:threading.py),以便保持向后兼容。
方法名和实例变量
这段大体上和函数相同:通常使用小写单词,必要时用下划线分隔增加可读性。仅为不打算作为类的公共界面的内部方法和实例使用一个前导下划线,Python不强制要求这样:它取决于程序员是否遵守这个约定。
使用两个前导下划线以表示类私有的名字,Python将这些名字和类名连接在一起:
如果类Foo有一个属性名为_a,它不能以Foo._a访问。(固执的用户还是可以通过Foo._Foo__a得到访问权。)
通常双前导下划线仅被用于避免含子类的类中的属性名的名字冲突。