擅长:python、mysql、java
<p>你在处理<a href="https://stackoverflow.com/a/292502/2615940">scope</a>问题。异常发生在函数<code>SW02()</code>中,因为您试图修改不在函数作用域内的对象。你得把它递过去。将<code>SW02()</code>更改为以下内容:</p>
<pre><code>def SW02(button1):
print("SW02 is on")
button1["fg"] = "green"
</code></pre>
<p>由于将函数用作命令的操作,因此有几个选项可以实际传递它。在</p>
<p>使用lambda:</p>
^{pr2}$
<p>使用functools.partial公司名称:</p>
<pre><code>from functools import partial
# other stuff
_SW02 = partial(SW02, button1)
button = Button(frameSP2T, padx=13, pady = 6, bd=4, text="SW02",fg="black", command=_SW02)
</code></pre>
<p>或者,正如jornsharpe的回答所建议的那样,您可以将整个GUI函数重构为一个类,并将所有小部件都作为类成员,然后将小部件操作与类方法(而不是普通函数)相关联。你可以通过修改所有组件的方式来访问它们。在</p>