Imprimir mientras se presiona el mouse

Estoy usando PyMouse (Evento) para detectar si se presiona el botón del mouse:

from pymouse import PyMouseEvent class DetectMouseClick(PyMouseEvent): def __init__(self): PyMouseEvent.__init__(self) def click(self, x, y, button, press): if button == 1: if press: print("click") else: self.stop() O = DetectMouseClick() O.run() 

Esto funciona hasta ahora, pero ahora quiero print("click") bucle print("click") hasta que el mouse ya no esté presionado … Intenté:

 def click(self, x, y, button, press): if button == 1: if press: do = 1 while do == 1: print("down") if not press: do = 0 

Y también algo. me gusta:

 while press: print("click") 

¿Puede ayudarme alguien? ¡Gracias!

    Creo que, como Oli señala en su comentario, no hay un flujo constante de clics cuando se presiona el botón del mouse, por lo que tendrá que tener la print en un bucle. Tener el bucle while ejecutándose en el mismo hilo evita que se active el evento de clic cuando se suelta el mouse, por lo que la única forma que se me ocurra para lograr lo que está buscando es print("click") desde un hilo separado.

    No soy un progtwigdor de Python pero he tenido una puñalada que funciona en mi máquina (Python 2.7 en Windows 8.1):

     from pymouse import PyMouseEvent from threading import Thread class DetectMouseClick(PyMouseEvent): def __init__(self): PyMouseEvent.__init__(self) def print_message(self): while self.do == 1: print("click") def click(self, x, y, button, press): if button == 1: if press: print("click") self.do = 1 self.thread = Thread(target = self.print_message) self.thread.start() else: self.do = 0 print("end") else: self.do = 0 self.stop() O = DetectMouseClick() O.run()