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

Python如何为map生成的打印设备输出每行追加对应当前时间

问题原因

  • 你提前将self._time赋值为固定字符串,时间会被锁定为赋值那一刻的结果,无法实现每条记录生成时对应不同的实时时间,也不能满足你示例中不同产品对应不同时间的需求。
  • map传入的多个参数需要都是长度匹配的可迭代对象,self._time是字符串类型,迭代时会被拆分为单个字符,和self.Product的元素长度不匹配,自然无法得到正确结果。

解决方案

如果需要每条记录对应生成时刻的实时时间(即你示例中不同产品对应不同时间的效果),推荐直接使用列表推导式实现,代码更易读:

from time import strftime

def send_output(self):
    return [f"Printer - {product} - {strftime('%H:%M:%S')}" for product in self.Product]

如果你更习惯使用map写法,也可以用lambda包装逻辑:

from time import strftime

def send_output(self):
    return list(map(lambda p: "Printer - {} - {}".format(p, strftime('%H:%M:%S')), self.Product))

如果需要本次调用send_output返回的所有记录使用同一个时间,只需在方法内部先统一获取一次时间即可:

from time import strftime

def send_output(self):
    current_time = strftime('%H:%M:%S')
    return [f"Printer - {product} - {current_time}" for product in self.Product]

内容的提问来源于stack exchange,提问作者d33p3r

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:39:00