Переменная область за пределами классов

Мой текстовый редактор по выбору расширяется с помощью плагинов 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?

Ответы на вопрос(5)

Ваш ответ на вопрос