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

Python中time()作为函数默认参数失效的问题求助

问题原因及解决办法
  • 问题本质:Python里函数/方法的默认参数是在定义阶段就完成求值的,不是每次调用时才计算。你写t = time()作为默认参数,这个time()在类fourcal被定义的那一刻就执行了,之后不管你多少次调用setda,t都会一直用这个固定的初始值,所以两次实例化输出的t完全一样。

  • 解决办法:把默认参数设为None,然后在方法内部判断,当t为None时再调用time()获取当前时间。修改后的代码如下:

from time import time
class fourcal:
  def setda(self, a, b, t=None):
    if t is None:
        t = time()
    self.a = a
    self.b = b
    self.t = time()
    print(t)
    print(self.t)

这样每次调用setda时,如果没传t参数,都会实时获取当前时间,就不会出现两次输出相同的情况了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:40:35