python中_和__的作用分别是什么?

>>> x = 1
>>> x
1
>>> _
1
阅读 16.3k
2 个回答

在Python中_其实就是一个普通的标识符而已,之所以有这么神奇的效果,是因为交互模式下Python用sys.displayhook这个函数干了一件很好玩的事:如果当前行的值不是None,就把这个值赋给这个_变量。
这就带来了一个效果,你每输入一个表达式,_这个变量的值都回更新,你在交互模式下打个_实际上就是显示这个变量的值,所以看起来的效果就是这个_命令能回显上一个表达式的值。

更多的是一种规范吧,如下(摘自http://www.cnblogs.com/yaksea/archive/2011/08/30/2159416.html):
_单下划线开头:弱“内部使用”标识,如:”from M import *”,将不导入所有以下划线开头的对象,包括包、模块、成员

单下划线结尾_:只是为了避免与python关键字的命名冲突

__双下划线开头:模块内的成员,表示私有成员,外部无法直接调用

双下划线开头双下划线结尾:指那些包含在用户无法控制的命名空间中的“魔术”对象或属性,如类成员的namedocinitimportfile、等。推荐永远不要将这样的命名方式应用于自己的变量或函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题