gpt4 book ai didi

python - 在编译之前抑制 Python 中的 SyntaxWarning

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:09 25 4
gpt4 key购买 nike

我使用的是 Python 2.7,并且一直在试验 Python 的 Tkinter 模块。我尝试构建一个可以接受两个输入并将它们输入到我自己设计的函数中的计算器。然后,我尝试定义一个函数,让我可以在全局范围内替换其中一个输入,以便它可以被所有其他函数接受(而不是每次运行程序时都将自己限制为只有两个输入)。

这个解决方案非常有效;不幸的是,在执行代码之前,它还在我的命令窗口中引发了 SyntaxWarning,这是我不想看到的。我已经用尽了有关抑制警告的文档,遗憾的是 warnings.filterwarnings() 并没有来救我。我被引导假设问题出在编译上,而不是执行上。

我将不胜感激任何关于这方面的建议或帮助,或者如果有人可以告诉我如何修改我的语法以达到同样的效果。

我正在使用 Button 小部件,当我在它们的命令参数中使用一个函数时,它们似乎只能按照我希望的方式工作,所以除非有人能告诉我如何超越只使用其中的函数,否则我不能很清楚如何修改我的语法。

代码如下:

from Tkinter import *

n1 = int(raw_input("N1?"))
n2 = int(raw_input("N2?"))

def add():
print n1+n2
def multiply():
print n1*n2
def power():
print pow(n1,n2)
def replacen1():
N1 = int(raw_input("Enter n1 replacement here"))
n1 = N1
global n1
def replacen2():
N2 = int(raw_input("Enter n2 replacement here"))
n2 = N2
global n2

Button(text = "Add",command = add).pack(side=LEFT)
Button(text = "Multiply", command = multiply).pack(side=LEFT)
Button(text = "Power", command = power).pack(side=LEFT)
Button(text = "Replace N1?", command = replacen1).pack(side=LEFT)
Button(text = "Replace N2?", command = replacen2).pack(side=LEFT)
mainloop()

最佳答案

除非它们确实超出您的控制,否则不要抑制警告。看看他们怎么说:

SyntaxWarning: name 'n1' is assigned to before global declaration

警告说,在使用 global n1 将其声明为全局变量之前,您要分配给 n1。因此,要修复您的代码,请将 global n1 行移动到您的函数的顶部(或您分配给 n1 的位置上方的任何位置):

def replacen1():
global n1

N1 = int(raw_input("Enter n1 replacement here"))
n1 = N1

n2 做同样的事情。

关于python - 在编译之前抑制 Python 中的 SyntaxWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16492798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com