python - Run while loop until function has returned a value -


i'm trying light 5mm led while function running. when function (more details below) finished , has returned value break while loop.

current code while loop:

pins = [3,5,8,15,16]  def piboard():    finished = 0   while finished!=10:     pin in pins       gpio.output(         pin, gpio.high       )       time.sleep(0.1)       gpio.output(         pin, gpio.low       )     finished+=1 

now in above example run while loop until count equal 10, not best practice. while loop break if next function has returned value.

function want break while loop when returned value

def myfunction():   thread(target = piboard().start()   // trying recognize song   return song recognized 

thanks, - k.

it sounds me want write class extends thread , implements __enter__ , __exit__ methods make work in with statement. simple implement, simple syntax, works pretty well. class this:

import threading  class blinky(threading.thread):     def __init__(self):         super().__init__()         self.daemon = true         self._finished = false      def __enter__(self):         self.start()      def __exit__(self, exc_type, exc_val, exc_tb):         self.stop()      def run(self):         # turn light on         while not self._finished:             time.sleep(.5)          # turn light off      def stop(self):         self._finished = true 

then, run function, put:

with blinky():     my_function() 

the light should turn on once with statement reached , turn off half second after context of with exited.


Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -