2017-01-08 2 views
0

J'ai écrit ce code pour la partie réveil d'un projet sur lequel je travaille (réveil de café). Quand je lance le programme, il soit juste saute à la « beurk ... » partie ou renvoie l'erreurProblème de code de réveil Python pour le projet de framboise pi

AttributeError: 'str' object has no attribute 'start'

Est-ce que quelqu'un a des idées sur la façon d'obtenir ceci fixe et le réveil de travail? J'ai juste besoin d'un nouvel ensemble d'yeux car je suis encore nouveau sur python et j'ai regardé le code trop longtemps maintenant.

import time 
import os 
import threading 


class Alarm(threading.Thread): 
    def __init__(self, hours, minutes): 
     super(Alarm, self).__init__() 
     self.hours = int(hours) 
     self.minutes = int(minutes) 
     self.keep_running = True 

    def run(self): 
     try: 
      while self.keep_running: 
       now = time.localtime() 
       if (now.tm_hour == self.hours and now.tm_min == self.minutes): 
        print("ALARM NOW!") 
        os.popen("bensound-dubstep.mp3") 
        return 
      time.sleep(60) 
     except: 
      return 
    def just_die(self): 
     self.keep_running = False 



print("Enter your name: ") 
user_input=input(":") 

print("Hello, " + user_input) 

alarm_HH = input("Enter the hour you want to wake up at: ") 
alarm_MM = input("Enter the minute you want to wake up at: ") 

print(("You want to wake up at: " + alarm_HH + ':' + alarm_MM).format(alarm_HH, alarm_MM)) 

alarm=("class Alarm") 
class Alarm (Alarm(alarm_HH, alarm_MM)): 
    alarm.start() 

try: 
    while True: 
     text = str(user_input()) 
     if text == "stop": 
      alarm.just_die() 
      break 

except: 
    print("Yikes lets get out of here") 
    alarm.just_die() 
+1

Bienvenue sur Stackoverflow. Le titre de votre question ne révèle pas trop le problème que vous rencontrez. Pourriez-vous l'améliorer? Considérez également [Comment poser une bonne question] (http://stackoverflow.com/help/how-to-ask) et fournissez un [Exemple minimal vérifiable] (http://stackoverflow.com/help/mcve) de votre problème. –

Répondre

1

Je ne suis pas tout à fait sûr de ce que vous essayez de faire avec cette boucle de fin, mais je crois que la raison pour laquelle il vous donne cette erreur est parce que vous essayez de faire référence user_input comme si elle est une fonction. Peut-être que vous essayiez juste d'attendre que l'utilisateur entre quelque chose? si oui ...

Essayez de changer ceci:

text = str(user_input()) 

à ceci:

text = str(input('')) 
+0

Ok merci. Cela a empêché le programme de s'écraser, mais il nécessite maintenant un retour pour activer "Alarme maintenant!" et pas de son. des idées là-bas? –

+0

et la pensée pour cette boucle de fin était juste pour donner à l'utilisateur un moyen de fermer le programme grâce à une commande "stop" –