Python获取语法警告如何阻止它们?

2024-04-26 06:37:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直收到这样的警告:

    Warning (from warnings module):
  File "C:\Users\finlx\Desktop\file.py", line 49
    global m
SyntaxWarning: name 'm' is assigned to before global declaration

我看过代码,程序运行得很好,但它给了我大约10个警告(每个警告都针对同一个问题,但变量不同)有没有办法禁用它,或者我输入了错误的东西?在


Tags: namefrompy警告lineglobalusersfile
2条回答

我怀疑你有这样的东西:

>> m = 10
>> def foo():
    m = 55
    global m

<stdin>:3: SyntaxWarning: name 'm' is assigned to before global declaration
>> foo()
>> m
55

如果是这样,只需将global m声明放在第一位:

^{pr2}$

克劳迪奥的回答是正确的,你应该做什么:移动你的全球声明。在

{1}有时我认为Python在任何地方都能正常工作。当进行更改时,决定通过引发SyntaxError和SyntaxWarning来避免破坏现有正确工作的代码。在

如果导入了无法修复的代码,则可以在命令行取消警告。我相信“-W ignore::SyntaxWarning”是合适的咒语,但我还没有测试过。可以按如下方式包装导入。在

import warnings

with warnings.catch_warnings():
    warnings.simplefilter('ignore', SyntaxWarning)
    # simulate import of module giving SyntaxWarning
    warnings.warn('bad', SyntaxWarning)

不打印警告。注释掉simplefilter行,其中一个是。在

相关问题 更多 >