随着人工智能和大数据分析火热发展趋势,python在其中扮演的角色越来越重要。各种行业人员进涌入python的学习热潮中。
我们大部分人员更多的是在把python作为一个工具使用,实现业务逻辑功能。而python很多基础的部分可能不是特别熟悉。今天我们就来来聊一聊python中常用的单下划线的含义、命名约定和名称修饰的工作原理。
1、前导单下划线:_var
在PEP8约定中定义,以单个下划线开头的变量或方法仅供内部使用。
这个在python中并非是一种强制规定,程序的行为不受影响。只为提示其他程序员这个变量或方法只在内部使用。不像Java那样有 私有 和 公有变量强制的区别开。
代码:
classs Student:def __init__(self):self.name = "mabiao"self._age = 25
执行中发现 实例化Student 我们是可以直接访问 _age 属性的
注意:前导下划线会影响从模块中导入名称的方式。
如果使用通配符从模块中导入所有名称,则Python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表)
顺便说一下,应该避免通配符导入,因为它们使名称空间中存在哪些名称不清楚。 为了清楚起见,坚持常规导入更好。
与通配符导入不同,常规导入不受前导单个下划线命名约定的影响
2、末尾单下划线:var_
在开发过种中,一个最合适的变量名称已经被一个关键字占用。因此像class、def这样的名称不能用作python中的变量名称。在这样的情况下,你可以使用在关键字未尾附加一个下划线来解决命名冲突问题。
同样在PEP8中也对此约定进行了解释。
3、单下划线:_
python中单下划线和其它语言一样用来表示这个变量是临时的或无关紧要的,抛弃掉这个值。
如在循环处理中,我们不需要列表中的索引值,就可以使用“_”抛弃掉此值。
for _ in range(10):
又如 在拆分元组为单独变量时候, 我们可以把不需要的值使用 _ 作为占位符变量进行抛弃。
除了用作临时变量之外,“_”是大多数Python REPL中的一个特殊变量,它表示由解释器评估的最近一个表达式的结果。
你可以在一个解释器会话中访问先前计算的结果,或者,你是在动态构建多个对象并与它们交互,无需事先给这些对象分配名字。
关于python中单下划线的总结就到这里, 有什么建议、疑问快来留言和我交流吧