我遇到了这个问题。使用第一种方法工作正常,但如果我把它放在一个函数中,就会发生错误:
from datetime import datetime, time
tt = datetime.strptime('09:01:24', '%H:%M:%S').timetuple()
print time(tm[3], tm[4], tm[5])
//display 09:01:24
但是将上述语句放在函数中会显示错误:' str'对象不可调用
from datetime import datetime, time
def strtime_2_time(time):
tm = datetime.strptime(time, '%H:%M:%S').timetuple()
return time(tm[3], tm[4], tm[5])
print strtime_2_time('09:01:24')
我在这里想念的是什么?
答案 0 :(得分:5)
您已将参数time
命名为隐藏您尝试创建的班级time
。选择其他名称。
答案 1 :(得分:3)
您已导入time
from datetime import datetime, time
然后在函数定义中有一个具有相同名称的参数
def strtime_2_time(time):
会覆盖名称时间。因此,函数time
内部不是您从datetime
模块(类型)导入的内容,而是您作为参数(字符串)收到的内容。这就是错误的原因。