为何在TensorFlow代码中使用下划线'_'作为变量名?
为什么TensorFlow代码里用下划线
_作为变量名? 这其实是Python里一个非常常用的惯例,用来表示“我明确知道这里有一个返回值,但我暂时不需要使用它”,咱们一步步拆解来看:
先看这行代码的逻辑
session.run([optimizer, loss], feed_dict=feed_dict) 会按照你传入的列表顺序,返回两个结果:
- 第一个是执行
optimizer(优化器)操作后的返回值——但优化器的作用就是更新模型参数,它本身的返回值对我们来说没有实际用处; - 第二个是
loss(损失值),这是我们需要记录下来用来监控训练状态的数值。
所以用_, l来接收这两个返回值,就是在告诉阅读代码的人:“第一个返回值我不需要,我只关心第二个损失值l”。
下划线_在Python里的其他常见用法
除了这种忽略返回值的场景,它还有几个常用场景:
- 在交互式环境(比如IPython)里,
_会自动保存最后一次执行的结果; - 作为循环里的临时变量,比如遍历次数但不需要用到计数时:
for _ in range(10): do_something(); - 在国际化(i18n)场景里,作为翻译函数的别名,比如
from django.utils.translation import gettext as _。
回到你贴的这段Word2Vec代码,用下划线占位既符合Python的编码习惯,又能让代码更简洁——不用特意给一个没用的变量起名字,避免代码里出现冗余的变量名。
内容的提问来源于stack exchange,提问作者SantoshGupta7
相关产品推荐
相关产品推荐

