python中下划线的使用场景有哪些

  

python中下划线的使用场景有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、_用于临时变量

单下划线一般用于表示临时变量,在REPL,为循环和元组拆包等场景中比较常见。

1.1 REPL

单下划线在REPL中关联的是上一次计算的非没有结果。

在祝辞祝辞1 + 1   2   在祝辞祝辞_   2   在祝辞祝辞=2 + 2   在祝辞祝辞_   2

1 + 1,结果为2,赋值给_;而赋值表达式=2 + 2为4,但整个表达式结果为没有,故不会关联到_。这有点类似日常大家使用的计算器中的ANS按键,直接保存了上次的计算结果。

1.2循环中的_

的循环中_作为临时变量用。下划线来指代没什么意义的变量。例如在如下函数中,当我们只关心函数执行次数,而不关心具体次序的情况下,可以使用_作为参数。

nums =13   for  _ 拷贝范围(num):   ,,,fun_oper ()

1.3元组拆包中的_

第三个用法是元组拆包,赋值的时候可以用_来表示略过的内容。如下代码忽略北京市人口数,只取得名字和区号。

在祝辞祝辞,城市,_,code =,(& # 39;北京# 39;,21536000,& # 39;010 & # 39;)   在祝辞祝辞,打印(城市代码)   Beijing  010

如果需要略过的内容多于一个的话,可以使用*开头的参数,表示忽略多个内容。如下代码忽略面积和人口数,只取得名字和区号

城市,* _,code =,(& # 39;北京# 39;,21536000,16410.54,& # 39;010 & # 39;)

1.4国际化函数

在一些国际化编程中,_常用来表示翻译函数名,例如gettext包使用时:

import  gettext   时间=zh  gettext.tranlation (& # 39; dict # 39;, & # 39;地区# 39;,语言=[& # 39;zh_cn # 39;])   zh.install ()   _ (& # 39;hello  & # 39;)

依据设定的字典文件,其返回相应的汉字“你好世界”。

1.5大数字表示形式

_也可用于数字的分割,这在数字比较长的时候常用。

在祝辞祝辞,a =9 _999_999_999   ,在的在的在一个   9999999999

的值自动忽略了下划线。这样用_分割数字,有利于便捷读取比较大的数。

二,var_用于解决命名冲突问题

变量后面加一个下划线。主要用于解决命名冲突问题,元编程中遇时Python保留的关键字时,需要临时创建一个变量的副本时,都可以使用这种机制。

def  type_obj_class(名称、class_):   ,才能通过      def 标签(名称、*内容class_):   ,,,通过

以上代码中出现的类是Python的保留关键字,直接使用会报的错,使用下划线后缀的方式解决了这个问题。

三,_var用于保护变量

前面一个下划线,后面加上变量,这是仅供内部使用的“保护变量”。比如函数,方法或者属性。

这种保护不是强制规定,而是一种程序员的约定,解释器不做访问控制。一般来讲这些属性都作为实现细节而不需要调用者关心,随时都可能改变,我们编程时虽然能访问,但是不建议访问。

这种属性,只有在导入时,才能发挥保护作用。而且必须是<代码>从XXX进口* 这种导入形式才能发挥保护作用。

使用从XXX进口* <代码> 是一种通配导入(通配符进口),这是Python社区不推荐的方式,因为你根本搞不清你到底导入了什么属性,方法,很可能搞乱你自己的命名空间.PEP8推荐的导入方式是<代码>从XXX进口阿瓦尔人,b_func, c_func 这种形式。

比如在下例汽车库函数的工具。py里定义的“保护属性”:发动机型号和轮胎型号,这属于实现细节,没必要暴露给用户。当我们使用从工具导入* <代码> 语句调用时,其实际并没有导入所有_开头的属性,只导入了普通驱动方法。

_moto_type =, & # 39; L15b2& # 39;   时间=_wheel_type  & # 39;米其林# 39;      def 驱动():   ,,,_start_engine ()   ,,,_drive_wheel ()      def  _start_engine ():   ,,,print (& # 39; start  engine  % & # 39; % _moto_type)   ,,,,   def  _drive_wheel ():   ,,,print (& # 39; drive  wheel  % & # 39; % _wheel_type)

查看命令空间打印(var())可见,只有开函数被导入进来,其他下划线开头的“私有属性”都没有导入进来。

python中下划线的使用场景有哪些