gpt4 book ai didi

Python--timedelta对象什么时候处理?

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:19 25 4
gpt4 key购买 nike

我有以下 Django 模型:

   created=models.DateTimeField(auto_now_add=True)

我现在需要一个模型对象方法来显示自创建以来的小时数。我尝试了以下方法:

  def hours_live(self):
diff=((datetime.datetime.now - self.created).seconds)/3600
return diff

但是它抛出了一个 TypeError

unsupported operand type(s) for -: 'builtin_function_or_method' and 'datetime.datetime'

然后我去了

 def hours_live(self):
diff=((datetime.datetime.now() - self.created).seconds)/3600
return diff

我的问题是 datetime.datetime.now() 表达式在这里只执行一次还是每次调用 hours_live 时都执行。

这行得通吗?

最佳答案

datetime.datetime.now 是一种方法。当你不带括号调用它时,你指的是方法本身,你不能从方法中减去时间。当您用括号调用它时,您是在调用该方法,获取返回值,然后使用它进行减法。

关于Python--timedelta对象什么时候处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6345686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com