Переменная область за пределами классов
Мой текстовый редактор по выбору расширяется с помощью плагинов Python. Это требует от меня расширения классов и переопределения его методов. Общая структура выглядит аналогично фрагменту ниже. Обратите внимание, что подпись функции исправлена.
ftp_client
должен быть разделен экземплярами обоих классов.
ftp_client = None
class FtpFileCommand(sublime_plugin.TextCommand):
def run(self, args):
global ftp_client # does it reference the variable of the outer scope?
self.ftp_client = ftplib.FTP('foo')
# login and stuff
class FtpFileEventListener(sublime_plugin.EventListener):
def run(self, args):
global ftp_client # same for this
self.ftp_client.quit() #
Предполагается, что оба этих класса имеют одну общую переменную. Какова лучшая практика для обмена переменными?
редактировать на основании маджаров ответ:
FtpFileCommand.run
называется во-первых, в стансиатеftp_client
и работает как шарм.FtpFileEventListener.run
называется позже, и может ссылатьсяftp_client
отлично, но это все ещеNone
, Используя ключевое слово global, добавляет ли она переменную в качестве членаself
?