好的,我正在编写一种与 Grooveshark ( http://grooveshark.com ) 交互的方法。现在我有一个 Grooveshark 类和几个方法,一个获取与服务器的会话,另一个获取基于会话的令牌,另一个用于构造对服务器的 api 调用(其他方法使用它)。现在我像这样使用它....注意在twisted中使用twisted和tidefer
g = Grooveshark()
d = g.get_session()
d.addCallback(lambda x: g.get_token())
## and then something like.... ##
g.search("Song")
即使在初始化类之后,我也发现这种不合常理和丑陋的感觉你必须先调用两个方法,否则其他方法将不起作用。为了解决这个问题,我试图得到它,以便创建 api 调用的方法负责会话和令牌。目前这两种方法(会话和令牌方法)设置类变量并且不返回任何内容(以及无)。所以我的问题是,在与需要令牌和会话的网站交互时是否使用了通用设计?此外,令牌和会话是从服务器检索的,因此我不能让它们在init方法中运行(因为它会阻塞或在进行 api 调用之前可能不会完成)