2017-01-08 2 views
0

Ich habe diesen Code für einen Wecker Teil eines Projekts, an dem ich arbeite (Kaffee Brau Wecker) geschrieben. Wenn ich das Programm laufen entweder überspringt es nur zum „Huch ...“ -Teil oder gibt den FehlerPython Wecker Code Problem für Himbeer Pi-Projekt

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

Hat jemand irgendwelche Ideen, wie man dieses Problem behoben werden und um den Wecker zu arbeiten? Ich brauche nur frische Augen, da ich Python noch nicht kenne und den Code schon zu lange gelesen habe.

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

Willkommen bei Stackoverflow. Dein Fragetitel verrät nicht viel über das Problem, das du hast. Könntest du es verbessern? Berücksichtigen Sie auch [Wie stelle ich eine gute Frage?] (Http://stackoverflow.com/help/how-to-ask) und stellen Sie ein [Minimales vollständiges überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) bereit. von deinem Problem. –

Antwort

1

Ich bin nicht ganz sicher, was Sie versuchen, mit diesem Zweck Schleife zu tun, aber ich glaube, dass der Grund, warum es Sie, dass Fehler geben, weil Sie versuchen, als verweisen USER_INPUT wenn es eine Funktion. Vielleicht hast du versucht auf den Benutzer zu warten, um etwas einzugeben? wenn ja ...

Versuchen Sie, diese:

text = str(user_input()) 

dazu:

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

Ok danke. Das verhinderte, dass das Programm abstürzte, aber es erfordert jetzt einen Rückschritt, um "Alarm jetzt!" Zu aktivieren. und kein Ton spielt. irgendwelche Ideen dort? –

+0

und der Gedanke für diese Endschleife war nur, um dem Benutzer eine Möglichkeit zu geben, das Programm durch einen "Stop" -Befehl zu schließen –