gpt4 book ai didi

python - 如何将 args 传递给 sublime_plugin.WindowCommand 的实例?

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:19 24 4
gpt4 key购买 nike

我为sublime text 3创建了一个插件,设计的Command Palette.sublime-commands如下:

[
{
"caption": "Function 1",
"args": {parameter:"y"},
"command": "generalfunc"
},
{
"caption": "Function 2",
"args": {parameter:"n"},
"command": "generalfunc"
}
]

实际上,我想将 args 传递给下面的 sublime_plugin 实例:

class GeneralFuncCommand(sublime_plugin.WindowCommand):
def __init__(self, parameter=None):
self.parameter = parameter
super(GeneralFuncCommand, self).__init__()

def run(self):
if self.parameter =='y':
do something
elif self.parameter =='n':
do something else
else:
pass

将参数传递给 GeneralFuncCommand 类的正确方法是什么?提前致谢。

最佳答案

我是一个插件/python 新手,但我把一些适合我的东西放在一起。

“**args”似乎是“def”行中的关键。似乎是通过 args['myparamnamehere'] 语法使所有其他参数可用的通配符。我已经看到其他脚本名称参数“**kwargs”所以也许你可以谷歌更多的例子(我发现了大量的例子,但没有关于它的方式或原因的文档)。可能有更好的方法,但这是我在自己的项目上工作几个小时后发现的所有方法,所以我只是坚持使用它。

class dgReplaceLibCommand(sublime_plugin.TextCommand):
def run(self, edit, **args):
if (args['replaceSet'] == "CFML to cfScript"):
self.cfml_to_cfscript(edit)

我猜你的 def 行需要看起来像这样......

def __init__(self, **args):

然后您将像这样访问您的参数(再次猜测)...

self.parameter = args['parameter']

此外,您可能需要在配置中的关键“参数”周围加上引号。我在没有引用的例子中没有看到太多。即...

"args": {"parameter":"y"}, 

希望这对您有所帮助!

关于python - 如何将 args 传递给 sublime_plugin.WindowCommand 的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897356/

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