我正在编写一个崇高的编辑器2插件,并希望它在会话期间记住一个变量。我不希望它将变量保存为文件(它是密码),但希望能够重复运行命令,并且可以访问变量。
我希望我的插件可以像这样工作......
import commands, subprocess
class MyCommand(sublime_plugin.TextCommand):
def run(self, edit, command = "ls"):
try:
thevariable
except NameError:
# should run the first time only
thevariable = "A VALUE"
else:
# should run subsequent times
print thevariable
答案 0 :(得分:4)
实现这一目标的一种方法是使其成为全局变量。这将允许您从任何函数访问该变量。 Here是需要考虑的堆栈问题。
另一种选择是将其添加到类的实例中。这通常在类的__init__()
方法中完成。实例化类对象后立即运行此方法。有关self
和__init__()
的详情,请咨询this stack discussion。这是一个基本的例子。
class MyCommand(sublime_plugin.TextCommand):
def __init__(self, view):
self.view = view # EDIT
self.thevariable = 'YOUR VALUE'
这将允许您在创建类对象后从其中访问此变量。这样的事情MyCommandObject.thevariable
。这些类型的变量将持续到调用方法的窗口关闭。