Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修复重新声明的警告?_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python 如何修复重新声明的警告?

Python 如何修复重新声明的警告?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,上面定义的重新声明的“i”未使用 我怎样才能修正这个警告 这是一个警告,因为在Python-2.x中,列表理解中的变量“泄漏”。这意味着这些不是本地范围的。例如: x = [[] for i in range(5)] y = [[] for i in range(10)] 由于您在两个列表理解中都使用了i,因此您将用第二个列表的i覆盖第一个列表中声明的i 如果要消除此错误,可以使用不同的变量名: >>> i = 'somevalue' >>> [[] for

上面定义的重新声明的“i”未使用


我怎样才能修正这个警告

这是一个警告,因为在Python-2.x中,列表理解中的变量“泄漏”。这意味着这些不是本地范围的。例如:

x = [[] for i in range(5)]
y = [[] for i in range(10)]
由于您在两个列表理解中都使用了
i
,因此您将用第二个列表的
i
覆盖第一个列表中声明的
i

如果要消除此错误,可以使用不同的变量名:

>>> i = 'somevalue'
>>> [[] for i in range(5)]
[[], [], [], [], []]
>>> i
4
正如文件中所述:

如果您需要分配某个变量(例如,在解包中),但不需要该变量,请使用
\uuu
(……)

许多Python风格指南建议使用一个下划线
\uu
用于一次性变量,而不是双下划线
\u
这里推荐。问题是,
\uu
通常用作别名 用于
gettext()
函数,也用于交互式 提示保存最后一个操作的值。使用双人床 下划线则同样清晰、方便,而且 消除了意外干扰其中任何一项的风险 其他用例


通常这意味着您已经在该函数的某个地方使用了
i
。这并没有错,但可能很危险,因为大多数人认为(在Python-2.7中)这些变量的作用域是局部的,而不是局部的。如果您使用u而不是i(u明确表示它是一个一次性变量)is
\uu
正式声明为这样,或者这仅仅是一种惯例,那么许多linter将保持沉默(正如其他地方所评论的,后面紧跟着“许多linter”只是为了方便)@usr2564301:《搭便车者Python指南》推荐了两个下划线。这两个下划线特别有用,因为像Django这样的库使用
\uu
表示
gettext()
(进行翻译)。也就是说,如果使用交互式会话,下划线通常会获取最后一次函数调用的输出。
x = [[] for i in range(5)]
y = [[] for j in range(10)]
x = [[] for __ in range(5)]
y = [[] for __ in range(10)]