Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的输入框总是返回PY_VAR1值!!虽然我';我正在使用.get函数_Python_Tkinter - Fatal编程技术网

Python 我的输入框总是返回PY_VAR1值!!虽然我';我正在使用.get函数

Python 我的输入框总是返回PY_VAR1值!!虽然我';我正在使用.get函数,python,tkinter,Python,Tkinter,请看一看我的代码,它真的很简单,我需要从输入框中获取值并在我的程序中使用它,当按下add按钮我打印它时,它一直给我这个值PY_VAR1?!!想知道我做错了什么 这是我的问题的t可运行代码的链接 因为你还没有给我们一个可运行的例子,这实际上只是一个猜测,但是 当您修复代码使其实际运行时,然后单击按钮,它将打印以下内容: default value PY_VAR1 如果您查看代码,它会执行以下操作: def add(me): print content.get()

请看一看我的代码,它真的很简单,我需要从输入框中获取值并在我的程序中使用它,当按下add按钮我打印它时,它一直给我这个值PY_VAR1?!!想知道我做错了什么

这是我的问题的t可运行代码的链接


因为你还没有给我们一个可运行的例子,这实际上只是一个猜测,但是

当您修复代码使其实际运行时,然后单击按钮,它将打印以下内容:

default value
PY_VAR1
如果您查看代码,它会执行以下操作:

    def add(me):
            print content.get()
            print text
第一行调用了
get
,调用了一个
StringVar
,您已经用
内容初始化了它。set('default value')
,并且再也没有修改过,所以它当然会打印出
默认值。据我所知,你对此并不感到惊讶

第二行不调用名为
text
StringVar
上的任何内容。只需
print
ing一个
StringVar
,而不是对其调用
get()
,并打印结果,就会导致它打印变量的Tk名称。您还在
addcase
中定义了一个同名的局部变量,这一事实与此无关。据我所知,这是你感到惊讶的。但你不应该这样。
add
函数无法看到您在完全不相关的函数中创建的任何局部变量

如果希望在类的同一实例的不同方法之间共享值,请将它们存储在实例属性中,而不是存储在局部变量中


但是,更简单地说,如果您只是避免在完全独立的作用域中对完全不同的变量重复使用相同的名称,您可能会避免混淆自己,这将很明显发生了什么。

最有可能的是,无论您的实际问题是什么,都与混合制表符和空格有关。我这样说的原因是,如果我将源代码作为发布内容粘贴到脚本中,它会在
root=Tk()
处引发
IndentationError
。您的实际代码可能与您发布的代码略有不同,但如果您混合使用制表符和空格,则可能不正确。选择一个新的文本编辑器,它可以将选项卡转换为空格,或者显式显示选项卡(除了Notepad和TextEdit之外,几乎所有的东西都可以执行其中一个或两个),并使用
-tt
标志运行代码。同时,如果您解决了这个问题,您的代码永远不会创建
addcase
实例。这些代码都不会运行,也不会调用
mainloop1
;因此,所有代码都是无关的。请发布一篇文章,演示您希望我们解决的问题。最后,作为旁注:这绝对是Python2.x,这意味着
class addcase:
正在显式创建一个经典类,而不是一个新样式的类。这只会给你和所有试图帮助你无缘无故处理的人带来额外的问题。始终编写
类addcase(object):
(或升级到3.x)为了消除该问题,显示的缩进错误导致代码缺少其余部分!现在,您已经将您的问题更改为一个完全不同的问题,涉及的代码大不相同。这使得这个问题和答案对任何未来的搜索者来说都毫无用处,也使得其他没有参与的人很难了解发生了什么并帮助你解决问题。不要那样做。如果你有一个新问题,发布一个新问题(或者在这里接受答案,或者发布你自己的答案,或者解释为什么你认为没有一个好答案)。我将为您回滚这一个。所以我按照您所说的做了,我将值存储在实例属性中,以供共享,但输入框值现在仍然返回一个空值,这是代码的运行版本,请您检查并帮助我好吗
    def add(me):
            print content.get()
            print text