栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Eclipse / PyDev中取消“未使用的变量”警告

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Eclipse / PyDev中取消“未使用的变量”警告

如果不需要变量的值,请将其分配给特殊变量

_

就Python而言,实际上没有什么特别的

_
。与其他名称一样,它只是另一个合法标识符名称。

但是,对于大多数“棉绒”式工具(希望包括PyDev),更重要的是,人类读者,它的特殊含义是:“我不需要此变量,我只在这里放一些东西,因为API
/语法/无论需要什么”。这意味着他们不会警告您不使用它。

所以:

_, content = myfunc()[2]

是的,您说对了,通常比更具可读性

myfunc()[2][1]
。不仅如此,它还可以帮助您捕获更多错误-
如果
myfunc()[2]
没有正好两个成员,则将抛出元组分配,而
[1]
不会。

很少,这不是一个好主意,因为您希望尽快将该值收集到垃圾中,并且将其绑定到

_
而不是根本不绑定(例如,通过
[2][1]
)会延迟该值。

更严重的是,这确实与另一个习惯用法冲突,后者也特别使用了

_
gettext
用于国际化的代码通常会:

import gettext_ = gettext.gettext

或者,等效地:

from gettext import gettext as _

显然,您不能同时使用

_
gettext快捷方式和无意义的标识符。(你 可以
真正摆脱它,因为
gettext
意思是在模块全球层面的约束,以及毫无意义的标识应该只是内部函数体中使用…但是,它仍然是一个非常糟糕的主意去尝试,因为在某些时候你会结束
gettext

_
在分配给它一个阴影的局部值之后,在函数中使用in。)
_
在任何情况下都没有强迫您使用的方法-
但是,如果您使用其他任何方法,则可能会使读者感到困惑(并且可能会混淆您使用的同一种工具)重新寻求安抚)。因此,您必须确定在任何给定项目中哪个对您更重要。(通常,如果您使用的是
gettext

如果您反复调用

myfunc
和处理某些值,则可能需要考虑编写包装函数:

def mywrapperfunc():    _, content = myfunc()[2]    return content

然后您的代码就可以做到:

content = mywrapperfunc()

这具有许多优点:

  • 显然,它比任何需要您记住的内容都更容易阅读,您想要记住的是,元组的后半部分位于由返回的序列的索引2中
    myfunc
  • 它为您提供了一个好名字的地方(希望比更好
    mywrapperfunc
    )和/或注释/文档字符串,以防万一。
  • 这意味着,如果您以后进行更改
    myfunc
    ,则现在所需的值在索引3中而不是2中,并且3元素元组的第二个成员而不是2元素元组,则只需要更改
    mywrapperfunc
    而不是20个不同的行即可码。
  • 这也意味着,如果您以后想使用相冲突的
    _
    习惯用法(例如,使用来对代码
    gettext
    进行更改),则只需要在一个地方进行更改即可。

旁注:在交互式解释器中,

_
确实
有特殊含义:它与最后一个交互式命令的结果绑定。但这并不意味着您不能
_
在交互式解释器中使用。(实际上,它在那里更好,因为您存储在其中的所有内容都会立即被覆盖,因此不会出现非常罕见的GC问题。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号