Python基础 – 命名规范
- 编程
- 2023-02-10
一,包名、模块名、局部变量名、函数名
全小写+下划线式驼峰
example:this_is_var
二,全局变量
全大写+下划线式驼峰
example:GLOBAL_VAR
三,类名
首字母大写式驼峰
example:ClassName()
四,关于下划线
以单下划线开头,是弱内部使用标识,from M import * 时,将不会导入该对象(python 一切皆对象)。
以双下划线开头的变量名,主要用于类内部标识类私有,不能直接访问。模块中使用见上一条。
双下划线开头且双下划线截尾的命名方法尽量不要用,这是标识
example for 1:
module_1 模块中定义变量 var_1, _var_2, __var_3
#module_1
var_1
_var_2
__var_3
module_2 模块中代码如下:
#module_2_error ''' 以下划线开头的变量不会别导入 ''' from module_1 import * print var_1 print _var_2 #将报错 print __var_3 #将报错
执行到第6,7行将会报错,因为凡是以下划线开头的对象都不会被导入。
既然是弱内部使用标识,就还是有使用办法的,只需单独导入即可:
#module_2_solution from module_1 import * # 导入所有的不是下划线开头的对象 from module_1 import _var_2, __var_3 # 显式导入下划线开头的对象 print var_1 print _var_2 # 不会报错 print __var_3 # 不会报错
example for 2:
#module_error ''' 双下划线开头的变量不能被直接访问 ''' class MyClass(): def __init__(self): self.var_1 = 1 self._var_2 = 2 self.__var_3 = 3 if __name__=="__main__": obj = MyClass() print obj.var_1 print obj._var_2 print obj.__var_3 # 这里将会出错
需要定义函数来获取双下划线开头的变量
#module_solution ''' 需要定义函数来获取双下划线开头的变量 ''' class MyClass(): def __init__(self): self.var_1 = 1 self._var_2 = 2 self.__var_3 = 3 def get_var_3(self): return self.__var_3 if __name__=="__main__": obj = MyClass() print obj.var_1 print obj._var_2 print obj.get_var_3() # 不会再报错
四,其他要注意的
不要像c等语言里面一样去用开头字母标识变量类型(如 iValue),因为python在解释的时候才确定类型。
因为异常也是一个类,所以遵守类的命名规则。此外,如果异常实际上指代一个错误的话,应该使用“Error”做后缀。
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。例如:function 缩写为 fn, text 缩写为 txt, object 缩写为 obj, count 缩写为 cnt, number 缩写为 num 等。
类实例方法第一个参数使用self, 类方法第一个参数使用cls
- 初学者学习python2还是python3?
- python获取本机IP、mac地址、计算机名
- 详解python2 和 python3的区别
- python基础之删除文件及删除目录的方法
- 用python求第1000个质数的值
- python常用函数年初大总结
- Python3 - 时间处理与定时任务
- Python开发的CMS系统,Silva CMS 3 发布
- python基础之使用os.system来执行系统命令
- 判断python字典中key是否存在的两种方法
- 初学者学习python2还是python3?
- python基础之删除文件及删除目录的方法
- python获取本机IP、mac地址、计算机名
- python获取系统时间(时间函数详解)
- 详解python2 和 python3的区别
- 用python求第1000个质数的值
- Python3 - 时间处理与定时任务
- 命令行看糗百
- Python算法之---冒泡,选择,插入排序算法
- python 中求和函数 sum详解
- range方法在Python2和Python3中的不同
- python3 数组(列表)初始化
- 记一次crontab中date命令错用导致的问题
- MySQL用LIKE特殊字符搜索
- CentOS 7 下修改主机名
- Python3正则表达式之:(?(id/name)y...
- TIOBE编程语言排行榜2019年 Python稳居前三
- 解压命令unzip常用方法汇总
- 解析redis备份文件rdb的两种方法及对比
- 百度视觉语义化平台2.0:交互升级和...
- 5G时代的视觉语义化技术:软硬结合...
- 百度AutoDL重磅升级至3.0:设计、迁...