Хорошо, я программирую способ взаимодействия с Grooveshark (http://grooveshark.com).. Сейчас у меня есть класс Grooveshark и несколько методов, один получает сеанс с сервером, другой получает токен, основанный на сеансе идругой используется для создания API-вызовов к серверу (и другие методы используют это). Прямо сейчас я использую это так ... Примечание использует Twisted и Tidefer в Twisted
g = Grooveshark()
d = g.get_session()
d.addCallback(lambda x: g.get_token())
## and then something like.... ##
g.search("Song")
Я считаю, что это не пифонично ибезобразный смысл, даже после инициализации класса сначала нужно вызвать два метода, иначе другие методы не будут работать. Чтобы решить эту проблему, я пытаюсь получить его так, чтобы метод, который создает вызовы API, заботился о сеансе и токене. В настоящее времяэти два метода (методы сеанса и токена) устанавливают переменные класса и ничего не возвращают (ну, нет). Поэтому мой вопрос: существует ли общий дизайн, используемый при взаимодействии с сайтами, которые требуют токены и сеансы? Также токен и сеансполучены с сервера, поэтому я не могу запустить их в методе init (as это будет либо заблокировано, либо не выполнено до вызова API)