我在这里对问题添加了评论:I'm Trying to create an alarm clock but it gives back this - TypeError: 'int' object is not callable询问为什么以下内容无效:
while True:
now = datetime.datetime.now()
if now.weekday() == 5:
if now.hour() == 10 and now.minute() == 30:
webbrowser.open(url)
elif now.hour() == 7 and now.minute == 0:
webbrowser.open(url)
time.sleep(1)
当我快速检查问题时,我刚刚测试了now.weekday()
是否是一个函数。然后我继续发表评论说OP已经错过了now.minute
上的括号,因此假设now.weekday()
是now.hour
函数然后是now.minute
和{{{{}}}而没有调用该函数。 1}}也是。
情况并非如此,而now.weekday()
是一个函数,now.hour
和now.minute
实际上是属性。
为什么会这样?为什么它们不是所有的功能/所有属性而不是两者的混合?
答案 0 :(得分:3)
因为datetime
对象是根据year
,month
,day
,hour
,minute
,second
创建的,microsecond
和tzinfo
值,而不是工作日。您无法在指定工作日的原始数字中创建此类对象。
因此,datetime
对象的输入数字是属性。
但工作日是派生的值,根据核心信息计算,并通过使weekday
方法明确要求计算它。