我定义了这些全局变量:
value1 = ""
value = ""
这两个变量用于两个不同的函数:
def function1():
...
value1 = widget.get(selection1[0])
def function2():
...
value = widget.get(selection0[0])
但是,当我尝试在第三个函数中使用这些变量时:
def function1():
if value1 != "":
if value != "":
print(value1 + " | " + value
else:
print("Bar")
我只得到一个|
而不是应该填充的变量。你知道吗
前提是我相信你正在使用tkinter,你不需要任何全球任务。你知道吗
您需要一种面向对象的方法和正确的工具,如StringVar()或IntVar()取决于变量的性质。你知道吗
请参见下面的def callback(self),这是您的函数1
通过赋值运算符,变量在python函数中本地创建。 我们需要显式地声明一个全局变量。 例如
正如jasonharper的评论所提到的,您需要使用
global
关键字来引用全局变量,否则将生成一个新的作用域变量。你知道吗没有全局:
输出:
函数生成自己的
x
,将其设置为4,然后打印它。全局x
保持不变。你知道吗与全球:
输出:
函数被告知要使用全局
x
,而不是生成自己的x
,将其设置为4,然后打印它。全局x
被直接修改,并保持其新值。你知道吗相关问题 更多 >
编程相关推荐