2017-01-08 4 views
0

Я написал этот код для части будильника проекта, над которым я работаю (будильник для пивоварения кофе). Когда я запускаю программу, она либо просто переходит к части «Хлоп ...» или возвращает ошибкуПроблема с кодом будильника Python для проекта малины pi

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

Кто-нибудь есть какие-либо идеи о том, как получить это фиксированное и будильник работает? Мне просто нужен свежий набор глаз, поскольку я еще новичок в python и слишком долго смотрел на код.

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

Добро пожаловать в Stackoverflow. Заголовок вопроса не раскрывает слишком много о проблеме, которую вы испытываете. Не могли бы вы улучшить его? Также рассмотрите [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и предоставите [Минимальный полный проверяемый пример] (http://stackoverflow.com/help/mcve) вашей проблемы. –

ответ

1

Я не совсем уверен, что вы пытаетесь сделать с этим конец цикла, но я считаю, что причина, это дает вам эту ошибку, потому что вы пытаетесь ссылаться user_input, как будто это функция. Может быть, вы пытались просто подождать, пока пользователь что-нибудь введет? если так ...

Попробуйте это изменить:

text = str(user_input()) 

к этому:

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

Хорошо спасибо. Это заставило программу сбой, но теперь требуется обратный удар, чтобы активировать «Тревога сейчас!». и звук не воспроизводится. Есть идеи? –

+0

, и мысль о том, что конец цикла был просто для того, чтобы дать пользователю возможность закрыть программу с помощью команды «stop» –

Смежные вопросы