2016-08-02 16 views
1

Ich verwende einen Mikrocontroller, um eine Glühbirne basierend auf einer Benutzereingabezeit zu steuern, und ich führe diese Funktion in einem Thread. Ich erhalte eine Fehlermeldung auf der Linie time.sleep(1):Getting "TypeError: muss eine Zeichenfolge sein, nicht funktionieren"

TypeError: must be a string, not function

def light(): 
    while True: 
     if(hour < 7 or hour > 18): 
      digitalWrite(light, LOW) 
     elif(hour > 6 and hour < 19): 
      digitalWrite(light, HIGH) 
     time.sleep(1) 
     increment_second() 
     print second 

#Time increments 
def increment_minute(): 
    global minute 
    minute = minute + 1 
    if(minute == 60): 
    minute = 0; 
    increment_hour() 

def increment_hour(): 
    global hour 
    hour = hour + 1 
    if(hour == 24): 
    hour = 0 

def increment_second(): 
    global second 
    second = second + 1 
    if(second == 60): 
    second = 0 
    increment_minute() 

Das ist mein Traceback:

Traceback (most recent call last): 
    File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner self.run() 
    File "/usr/lib/python2.7/threading.py", line 505, in run self.__target(*self.__args, **self.__kwargs) 
    File "/var/lib/cloud9/Untitled2.py", line 63, in light time.sleep(1) 
TypeError: must be string, not function 
+0

Hinzufügen versuchen und außer vielleicht hilft. –

+0

Es sieht also so aus, als wäre der Fehler irgendwo anders in Ihrem Code, wo Sie "Zeit" vielleicht als etwas anderes als das Standardmodul definieren. (Sie sollten prüfen, ob dies nicht der Fall ist). – zezollo

+0

Löschen Sie Ihre Definition, wenn Sie einen Namen 'Zeit' haben. Oder 'von Zeit import Schlaf als zzzz' und' zzzz (1) ' – dsgdfg

Antwort

0

Problem verursacht wurde von mir versehentlich eine Variable und die Funktion der gleichen Namen zu nennen. Ändern der Namen hat es behoben. Vielen Dank für Ihre Hilfe!

Verwandte Themen