Sublime编辑器插件记住变量
我正在写一个Sublime Editor 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
1 个回答
4
一种实现这个的方式是把它设为全局变量。这样你就可以在任何函数里访问这个变量。这里有个相关的问题可以参考。
另一个选择是把它添加到类的实例中。通常是在类的 __init__()
方法里进行设置。这个方法在类的对象被创建时就会运行。想了解更多关于 self
和 __init__()
的信息,可以查看这个讨论。下面是一个基本的例子。
class MyCommand(sublime_plugin.TextCommand):
def __init__(self, view):
self.view = view # EDIT
self.thevariable = 'YOUR VALUE'
这样你就可以在创建类对象后访问这个变量。比如说 MyCommandObject.thevariable
。这些变量会一直存在,直到调用它们的窗口关闭为止。