在编译之前抑制Python中的SyntaxWarning

在编译之前抑制Python中的SyntaxWarning,python,tkinter,Python,Tkinter,我正在使用Python2.7,并且一直在试验Python的Tkinter模块。我试着构建一个计算器,它可以接受两个输入,并将它们输入到我自己设计的函数中。然后,我尝试定义一个函数,让我全局替换其中一个输入,以便其他所有函数都能接受它(而不是每次运行程序时将自己限制为两个输入) 这个解决方案非常有效;不幸的是,在执行代码之前,它还会在我的命令窗口中引发SyntaxWarning,我不想看到它。我已经用尽了有关抑制警告的文档,遗憾的是警告。filterwarnings()无法帮助我。我一直认为问题在

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

这个解决方案非常有效;不幸的是,在执行代码之前,它还会在我的命令窗口中引发SyntaxWarning,我不想看到它。我已经用尽了有关抑制警告的文档,遗憾的是警告。filterwarnings()无法帮助我。我一直认为问题在于编译,而不是执行

如果有人能告诉我如何修改我的语法以达到同样的效果,我将不胜感激

我使用的按钮小部件似乎只有在我在命令参数中使用函数时才能按我希望的方式工作,因此除非有人告诉我如何超越仅使用其中的函数,否则我无法完全理解如何修改语法

代码如下:

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
的位置上方的任何位置):


n2

执行同样的操作,不要抑制警告,除非它们确实超出您的控制范围。读他们说的话:

SyntaxWarning: name 'n1' is assigned to before global declaration
警告表示,在使用
global n1
将其声明为全局之前,您正在分配给
n1
。因此,要修复代码,请将
global n1
行移动到函数顶部(或指定给
n1
的位置上方的任何位置):

n2
执行相同的操作