[Twisted-Python] Soon to be not-a-newbie?
nitro at dr-code.org
Sat Jan 26 09:42:52 EST 2008
Am 26.01.2008, 13:01 Uhr, schrieb Tristan Seligmann
<mithrandi at mithrandi.za.net>:
> In the vast majority of network applications, I believe deferred
> operations are not sequenced in a linear fashion;
Deferreds are not network application specific. They're related to
asynchronous things in general. For example I make good use of them for
some GUI things, too. I have cut and pasted some examples from my code
Ex. 1: This waits for things to arrive over network then displays it.
def onLoadSceneButton(self, evt):
worlds = yield self.app.client.getAvailableWorlds()
dlg = SimpleListBoxDialog(self.gui, worlds)
name = yield dlg.showModal()
print 'Not setting a new world!'
self.app.sendEvent( Events.setGameWorld(name) )
Ex. 2: A simple GUI based game where you have to guess a number between 0
name = 'Guess the number'
#'Ok. The number I chose is between 0-999. Now you have to guess.
#'tell you if your number is lower or higher than mine. If you
#'than 10 attempts you lost.'
player = self.players
number = random.randint(0,999)
won = False
result = ''
for i in range(0,10):
guess = yield player.getNextMove( (i, result) ) # here we wait
for the user to enter something into the GUI
if guess > number:
result = 'too high'
elif guess < number:
result = 'too low'
won = True
player.setMessage( "You've won! %d was the magic number" %
if not won:
player.setMessage( "You've lost! %d was the magic number" %
More information about the Twisted-Python