Tkinter StringVar()跟踪未执行命令

2024-06-26 14:51:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写这段代码是为了成为一个版本管理器,但是它不执行命令changeDir()。为什么?在

https://pastebin.com/VSnhzRzF


Tags: 代码https版本com管理器执行命令pastebinchangedir
1条回答
网友
1楼 · 发布于 2024-06-26 14:51:07

您忘记向changeDir函数传递“name”参数。也没有例外,因为你的声明没有效果!在

表示问题的代码段:

import sys


def exec_smth():
    # execution without effect
    exec('write_smth')

    try:
        # execution with exception because of missing argument
        exec('write_smth()')
    except TypeError as error:
        # now we pass an argument
        exec('write_smth("I failed because of %s" % error )')


def write_smth(smth):
    sys.stdout.write(smth)

exec_smth()

总之,在你的__init__函数之外,由于垃圾收集器,根本没有{}s,所以你的代码无论如何都会失败!在

还有更多的问题,因为你从来没有将你的sv{}绑定到一个小部件上,并期望得到一些回报!但是好吧,让我们试着用exec来做一些事情:

^{pr2}$

输出:

output

正如您所见-我们总是需要一个对StringVars的引用,我认为带有一个StringVars列表的选项要好得多!在

注意:如果需要将某些内容传递给回调函数-请使用lambda函数!所有代码都用python3测试过。

链接:

相关问题 更多 >