python中关于命名的例子_python基础之命名

Python 中使用的不同命名风格包括以下几种。

• 驼峰式命名法(CamelCase)。

• 混合式命名法(mixedCase)。

• 大写(UPPERCASE)或大写加下划线(UPPER_CASE_WITH_UNDERSCORES)。

• 前缀(leading ) 和后缀 ( trailing)下划线,有时是双下划线(doubled)。

小写元素和大写元素通常是一个单词,有时是几个单词连在一起。使用下划线的通常

是缩写短语。使用一个单词要更好一些。前缀和后缀下划线用于标记私有元素和特殊元素。

这些风格被应用到以下几种情形。

• 变量。

• 函数和方法。

• property。

• 类。

• 模块。

• 包。

一、变量

Python 中有两种变量:

• 常量。

• 公有和私有变量。

1.常量

对于常量全局变量,使用大写加下划线。它告诉开发人员,指定的变量表示一个常数值。

Python 中没有像 C++中那样真正的常量—在 C++中 可以使用 const。你可以修改任何变量的值。这就是 Python 使用命名约定将一个变量标记为常量的原因。

举个例子,doctest 模块提供了一系列选项标记和指令(https://docs.python.org/3.5/ library/doctest.html#option-flags),它们都是短小的句子,清晰地定义了每个选项的用途:

from doctest import IGNORE_EXCEPTION_DETAIL

from doctest import REPORT_ONLY_FIRST_FAILURE

这些变量名称看起相当长,但清晰地描述它们也很重要。它们主要在初始化代码中使 用,而不在代码主体中使用,所以这种冗长的名称并不会令人厌烦。

大部分情况下,缩写名称都会使代码含义变得模糊。如 果缩写不够清晰,不要害怕使用完整的单词。

有些常量的名称也是由底层技术驱动的。例如,os 模块使用 C 中定义的一些常量,例 如 EX_XXX 系列定义了 Unix 退出代码编号。例如,同样的名称代码可以在系统的 C 头文

件 sysexits.h 中找到,如下所示:

importosimport sys

sys.exit(os.EX_SOFTWARE)

使用常量的另一个好的做法是,将它们集中放在使用它们的模块顶部,如果它们要用 于下列操作,那么就将其组合在新的变量中:

importdoctest

TEST_OPTIONS= (doctest.ELLIPSIS |doctest.NORMALIZE_WHITESPACE|

doctest.REPORT_ONLY_FIRST_FAILURE)

2、命名和使用

常量用来定义程序所依赖的一组值,例如默认配置文件名。

好的做法是将所有常量集中放在包中的一个文件内。举个例子,Django 采用的就是这 种方法。一个名为 settings.py 的模块提供所有常量,如下所示:#config.py

SQL_USER = 'tarek'SQL_PASSWORD= 'secret'SQL_URI= 'postgres://%s:%s@localhost/db' %(

SQL_USER, SQL_PASSWORD

)

MAX_THREADS= 4另一种方法是使用可以被 ConfigParser 模块或类似 ZConfig(Zope 中用于描述其 配置文件的解析器)之类的高级工具解析的配置文件。但有些人认为,对于 Python 这种文 件能够像文本文件一样轻松编辑和修改的语言来说,使用另一种文件格式可能是过分之举。

对于表现得像标记的选项,通常的做法是将它们和布尔运算结合起来,就像 doctest 和 re 模块所做的那样。doctest 中的模式很简单,如下所示:

OPTIONS={}defregister_option(name):return OPTIONS.setdefault(name, 1 <

BLUE = register_option('BLUE')

RED = register_option('RED')

WHITE = register_option('WHITE')

你将会得到下列结果:

>>> # 我们来尝试一下

>>> SET = BLUE | RED

>>> has_option(SET, BLUE) True

>>> has_option(SET, WHITE) False

在创建这样一组新的常量时,应避免对它们使用共同的前缀,除非模块中有多组常量。 模块名称本身就是一个共同的前缀。另一种解决方法是使用内置 enum 模块的 Enum 类,

并且依赖于 set 集合类型而不是二进制运算符。不幸的是,Enum 类在面向旧 Python 版本 的代码中应用有限,因为 enum 模块由 Python 3.4 版提供。

在 Python 中,使用二进制按位运算来合并选项是很常 见的。使用 OR(|)运算符可以将多个选项合并到一 个整数中,而使用 AND(&)运算符则可以检查该选 项是否在整数中(参见 has_option 函数)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值