Folks, Cela semble être un programme de base et je ne peux pas comprendre ce qui ne va pas ici. Lorsqu'il est exécuté, le programme attend juste et ne sort rien sur la console, en appuyant sur control-c ne produit rien non plus. S'il vous plaît donnez votre avis.Python tordu différé et getProcessOutputAndValue question
Ma compréhension est la suivante: (i) Reactor est exécuté et callLater provoque l'appel de runProgram après '0' secondes. (ii) runProgram obtient un retour différé de getProcessOutputAndValue, et j'ajoute Callback et Errback ainsi que reactor.stop() comme callback 'Both'.
Mon attente est maintenant, le rappel de différé (ou Errback en cas d'échec) doit être appelé lorsque l'exécution de la commande est terminée. Enfin, puisque addBoth est spécifié, il faut appeler le reactor.stop() qui arrête le réacteur.
from twisted.internet.utils import getProcessOutputAndValue
from twisted.internet import reactor
def printResult(result):
print u'Result is %s' % result
def printError(reason):
print u'Error is %s' % reason
def stopReactor(r):
print u'Stopping reactor'
reactor.stop()
print u'Reactor stopped'
def runProgram():
command = ['lrt']
d = yield getProcessOutputAndValue('echo', command)
d.addCallback(printResult)
d.addErrback(printError)
d.addBoth(stopReactor)
reactor.callLater(0, runProgram)
reactor.run()
Merci. Choisir votre réponse comme vous avez donné le supplément sur la façon de l'utiliser avec le rendement. – helpmelearn