Python 中下划线Underscores的四种使用场景
Python 中下划线的四种使用场景(Four Usage Scenarios of Underscores in Python)
文章目录
导言Introduction
Python 中的下划线Underscores有四种特殊用法。其中一些是为了提高代码可读性而约定俗成的。有些是我们必须知道的特殊功能。这四种情况是:
- 分隔数字的位数 Separate digits of numbers
- 用于忽略某些变量 Use to ignore some variable
- 将最后一个表达式的值存储在解释器中 Store the last expression’s value in interpreter
- 命名规则 Naming conventions
本篇文章将讨论所有这些下划线,以帮助您完全理解如何在 Python 中使用下划线underscores。
分隔数字的位数
有时,如果一个数字number太长,要数出这个数字有多少位数就很难,也很枯燥。例如,如果有一个变量 a=1000000000000
, a
中有多少个零?
幸运的是,Python 为我们提供了一种非常简单的方法,在整数integral、浮点数floating-point和复数complex字面量中使用下划线underscores作为数字分组的视觉分隔符visual separators。如果我们需要定义一个长数字,不要忘记使用下划线,这样会更方便。
a = 1_000_000_000_000
print(a) # 1000000000000
上述 a=1_000_000_000_000
的说法与 a=1000000000000
完全相同。您想用哪种方式定义 a
呢?
用于忽略某些变量
有时,容器container(列表list/元组tuple等)中的部分值是无用的useless。我们可以使用下划线来underscore忽略ignore它们。
L = [1, 3, 5, 7]
a, _, b, _ = L
print(a, b) # 1 5
如上面的代码所示,我们需要获取 L
的第一个和第三个值,并将它们赋值给变量 a
和 b
。同时,第二个和最后一个值是无用的。我们只需使用 _
忽略它们。
注意:这种用法只是一种惯例convention。我们可以使用任何其他名称来实现这一目的。但使用下划线underscore是最好的选择,可以避免歧义ambiguity并让其他开发人员容易理解。
在解释器中存储最后一个表达式的值
这是 Python 解释器的一个有趣的小技巧。我们可以使用一个下划线简单地获取最后一个表达式的值last expression’s value。
>>> 5+6
11
>>> _
11
命名约定
下划线常用于变量variable名、类class名和函数function名。例如
first_name = 'Zhang'
在定义变量 first_name
时,我们使用了 _
使其更加易读。
除了在名称中间位置使用下划线underscores外,我们还应该知道四种特殊的命名模式:
- 单前置下划线 Single Leading Underscore:
_var
- 双前置下划线 Double Leading Underscore:
__var
- 单个后置下划线 Single Trailing Underscore:
var_
- 双前置和后置下划线 Double Leading and Trailing Underscore:
__var__
单/双前置下划线
在面向对象编程object-oriented programming中,有三种类型的类成员class members:
- Public:类的公共成员可以从程序的任何部分访问。在 Python 中,所有不带下划线的成员变量和方法默认都是公共成员。
- Protected:受保护成员可在同类或派生类中访问。我们使用单前置下划线将变量定义为受保护成员。
- Private:私有成员只能在同一个类中访问。我们使用双前置下划线将变量定义为私有成员。
class Student:
def __init__(self, name, age, grade):
self.name = name # public member
self._age = age # protected member
self.__grade = grade # private member
关于前置下划线有两个提示:
- 单前置下划线只是一种惯例convention。我们仍然可以将其用作公共成员public member。但我们不应该这样做。遵循良好的编程习惯会让我们的代码更优雅,也更容易被其他开发人员阅读。
- 双前置下划线机制是一种语法syntax而非惯例convention。Python 使用名称混淆name mangling技术来确保我们不会在类外使用私有成员。
单个后置下划线
有时,我们会为变量variable想一个好名字,但不幸的是,这个名字与 Python 关键字keywords或内置变量built-ins相冲突。我们可以使用一个下划线underscore后置来避免歧义。例如
list_ = [1,2,3] # good naming style
list = [2,3,4] # bad name; has ambiguity with Python keyword
双前置和后置下划线
这个约定用于 Python 类的特殊special变量variables或方法methods(所谓的 “魔法方法magic method”),例如 __init__()
方法。我们只需要知道 Python 魔法方法magic method使用了这个约定convention,并避免这样命名我们的变量variables或方法methods。
结论Conclusion
一个优秀的开发者应该遵循常用的代码约定并关注细节。在 Python 中正确使用下划线underscores就是一个好习惯good habit。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!