gpt4 book ai didi

python - Tkinter 字符串回调

转载 作者:行者123 更新时间:2023-11-28 18:54:34 26 4
gpt4 key购买 nike

情况是这样的:

我有一个 XML 文件,其中包含我的应用程序的菜单层次结构。我可以显示菜单,但在 XML 文件中定义回调仅返回字符串。

更明确的问题:我需要一种通过字符串回调函数的方法。是的,有

lambda x: pass

交易,但我不确定这就是我需要的。

最佳答案

I need a way to callback functions via a string.

根据对您问题的评论,我了解到您想要执行以下操作:

# ...
callback_str = getcallback_str() # e.g., 'self.logic.account_new'
callback = eval_dottedname(self, callback_str)`

在这种情况下,eval_dottedname() 函数可以实现为:

def eval_dottedname(obj, dottedname):
if dottedname.partition(".")[0] != 'self': # or some other criteria
# to limit the context
raise ValueError
return reduce(getattr, dottedname.split('.')[1:], obj)

更好的方法是将字符串回调限制为简单的标识符,并使用像 stdlib 的 cmd module 这样的调度表。 :

  def dispatch(self, callback_str):
return getattr(self, 'do_' + callback_str, self.default)()

def do_this(self):
pass

def do_that(self):
pass

关于python - Tkinter 字符串回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com