2016-08-02 102 views
1

我正在使用微控制器根据用户输入时间来控制灯泡,并且我正在线程中运行此函数。我一直在该行time.sleep(1)得到一个错误:获取“TypeError:必须是字符串,而不是函数”

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() 

这是我回溯:

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

添加尝试,除了可能有帮助。 –

+0

所以看起来错误是在代码中的其他地方,您可能会将'time'重新定义为与标准模块不同的东西。 (你应该检查这是不是这种情况)。 – zezollo

+0

如果您有'time'这个名字,请清除您的定义。或'从时间导入睡眠为zzzz'和'zzzz(1)' – dsgdfg

回答

0

问题被我不小心命名变量和函数名称相同而引起的。更改名称修复了它。谢谢大家的帮助!

相关问题