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

如何在Python函数中正确使用time.sleep()?解决自定义wait函数的AttributeError问题

解决AttributeError: 'int' object has no attribute 'sleep'的问题

嘿,这个坑我刚入门Python的时候也踩过!咱们来一步步捋清楚问题出在哪,以及怎么解决:

问题原因

你自定义的wait函数参数名用了time,这直接和你导入的time模块重名了!在函数内部,局部作用域里的time(也就是你调用wait(1)时传入的整数1)会覆盖全局作用域里的time模块。这时候你再调用time.sleep(time),其实是在尝试对整数1调用sleep方法——整数哪有这个方法呀,自然就抛出AttributeError了。

两种解决方法

方法1:修改函数参数名(推荐)

最简单的方式就是把参数名改成和模块名不冲突的名字,比如delay或者seconds:

import time

def wait(delay):
    time.sleep(delay)

wait(1)  # 现在就能正常延迟1秒啦

方法2:给模块起别名

如果你特别想用time当参数名,也可以给导入的time模块起个别名,避免冲突:

import time as t

def wait(time):
    t.sleep(time)

wait(1)

小提示

以后写代码的时候,尽量别用Python内置模块名、内置函数名(比如list、str、print这些)当变量名或者参数名,不然很容易出现这种“变量覆盖”导致的奇怪错误,排查起来还挺费时间的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:08:15