Python 标识符
标识符是用户为变量、函数、类、模块和其他对象定义的名称。听起来很简单,但实际上并非如此。标识符并非随意命名,它通过赋予事物相关的名称,使代码更易读、更易理解。为此,必须遵循许多规则。
在本教程中,我们将学习编写标识符的规则、有效和无效标识符的示例、如何测试字符串是否为有效标识符,最后,我们将了解命名标识符的最佳实践。
Python中标识符的编写规则
编写 Python 标识符时必须遵循一些命名约定和规则。
- 关键字 不能用作标识符名称,因为它们是 Python 编程语言中的保留字。如果尝试这样做,将会抛出SyntaxError 异常。
- Python 标识符可以包含小写字母 (az)、大写字母 (AZ)、数字 (0-9) 和下划线 (_)。
- 标识符不能以数字开头。例如,10test 就是一个无效的标识符。
- Python 标识符不能只包含数字。例如,888 就是一个无效的标识符。
- Python 标识符名称可以以下划线开头。因此,_test 就是一个有效的标识符。
- 标识符名称的长度没有限制。但是,不要使用过长的标识符,这只会损害你作为程序员的信誉。
- Python 标识符区分大小写。因此,“abc”和“ABC”是两个不同的标识符。为了保持程序之间的一致性,最好使用小写字母作为标识符。
Python 中有效标识符的示例
让我们来看一些Python中有效标识符的例子。
- ab10c:仅包含字母和数字
- abc_DE:包含所有有效字符
- _:令人惊讶的是,下划线确实是有效的标识符。
- _abc:标识符可以以下划线开头
Python中无效和有效标识符的示例
现在让我们来看一些Python中无效标识符的例子。
- 99:标识符不能仅由数字组成
- 9abc:标识符不能以数字开头
- x+y:唯一允许的特殊字符是下划线
- for:它是 Python 中的一个保留关键字。
如何测试一个字符串是否为有效的标识符?
我们可以使用字符串的 isidentifier() 函数来检查标识符名称是否有效。但是,这种方法不会考虑保留关键字。因此,我们可以结合 keyword.iskeyword()函数来检查名称是否有效。
python
print("abc".isidentifier()) # True
print("99a".isidentifier()) # False
print("_".isidentifier()) # True
print("for".isidentifier()) # True - wrong output我们知道“for”是一个保留关键字,所以它不是一个有效的标识符。让我们定义一个函数来测试标识符名称是否有效。
python
def is_valid_identifier(s):
return s.isidentifier() and not keyword.iskeyword(s)
print(is_valid_identifier("for")) # FalsePython中标识符命名最佳实践
- 类名应以大写字母开头。例如:Person、Employee 等。
- 如果类名包含多个单词,则每个单词的首字母必须大写。例如:EmployeeData、StringUtils 等。
- 变量、函数和模块名称应该使用小写字母。例如,collections、foo() 等。
- 如果变量、函数和模块名称包含多个单词,则用下划线分隔。例如,is_empty()、employee_object 等。
- 对于私有变量,可以在其名称前加上下划线。
- 标识符名称的首尾字符应避免使用下划线。Python 内置类型会使用下划线。
- 如果标识符以两个下划线开头和结尾,则表示该标识符是语言定义的特殊名称,例如 init。因此,应避免标识符名称的开头和结尾都使用两个下划线。
- 保持标识符名称的含义清晰明确,例如:电话号码、是否大写等。
- 如果一个函数返回布尔值,最好以“is”开头命名。例如,isidentifier、iskeyword 等。
- 标识符名称的长度没有限制。但是,请保持简洁明了。例如,the_employee_object_first_name可以更好地命名为emp_first_name。
总结
关键字和标识符是 Python 中两个至关重要的概念。Python 标识符是用作变量名的名称,旨在提高代码的可读性和易理解性。在本教程中,我们学习了标识符的命名规则,并提供了有效和无效标识符的示例。在编写程序标识符时,务必牢记这些规则。
下一步是什么
你对Python中的标识符有了初步了解。现在,你应该学习以下教程,掌握Python编程的基础知识。
参考
https://docs.python.org/3/reference/lexical_analysis.html#identifiers