You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用lambda获取秒级时间戳遇重复返回旧值问题

Python中使用lambda获取秒级时间戳遇重复返回旧值问题

嘿,这个问题我太熟悉啦!咱们先揪出问题根源:

你把Now_ = NowS()定义成了类的属性,这意味着这个时间戳在类被加载的那一刻就已经固定下来了——也就是程序启动或者这个类第一次被导入的时候,之后不管你隔多久调用post方法,self.Now_都会一直用最开始那个旧值,根本不会重新计算当前时间。

那怎么改呢?给你几个简单好用的方案:

方案1:在请求方法内实时计算

把时间获取逻辑放到post方法里,这样每次处理请求时都会重新获取当前时间戳:

from datetime import datetime
from rest_framework.views import APIView

NowS = lambda : round(datetime.now().timestamp())

class api_REMITTANCE_(APIView):
    def post(self, request):
        # 每次请求时才计算最新时间戳
        now_ = NowS()
        return_serial = {"status_" : "OK_","time": now_}
        return Response(return_serial)  # 记得返回DRF的Response对象哦

方案2:用@property实现动态属性

如果还是想保留self.Now_的调用方式,可以把它改成动态属性,每次访问都会重新计算:

from datetime import datetime
from rest_framework.views import APIView

class api_REMITTANCE_(APIView):
    @property
    def Now_(self):
        return round(datetime.now().timestamp())

    def post(self, request):
        return_serial = {"status_" : "OK_","time": self.Now_}
        return Response(return_serial)

小建议

其实这里用lambda有点没必要,直接定义普通函数可读性更强:

def get_current_timestamp():
    return round(datetime.now().timestamp())

这样修改后,每次调用接口都会返回最新的时间戳啦~

备注:内容来源于stack exchange,提问作者rahim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:23:16