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

Python threading模块中getName()方法出现删除线的原因是什么?

问题触发原因
  • getName()方法从Python 3.10版本开始被正式弃用,编辑器的删除线提示是在标注该API属于废弃状态,后续Python版本可能会完全移除该方法,不推荐继续使用。
  • 除此之外你提供的代码还有两处需修复的问题:
    • 代码中部分位置调用的currentthread()属于拼写错误,正确写法是current_thread(),缺少中间的下划线,运行时会直接抛出属性错误
    • 代码开头没有导入threading模块,运行前需要补全导入语句
修复方案

替换废弃API

getName()的替代方案是直接访问线程对象的name属性,对应的原setName(xxx)方法可以替换为给name属性直接赋值:

# 旧写法(已废弃)
threading.current_thread().getName()
# 新写法(官方推荐)
threading.current_thread().name

修复后的完整代码

import threading
import time

def functionOne() :
    print(threading.current_thread().name + ' is starting \n')
    time.sleep(2)
    print(threading.current_thread().name + ' is exiting \n')
    return

def functionTwo():
    print(threading.current_thread().name + ' is starting \n')
    time.sleep(2)
    print(threading.current_thread().name + ' is exiting \n')
    return

def functionThree():
    print(threading.current_thread().name + ' is starting \n')
    time.sleep(2)
    print(threading.current_thread().name + ' is exiting \n')
    return

if __name__ == "__main__":
    t1 = threading.Thread(name='functionOne',target=functionOne)
    t2 = threading.Thread(name='functionTwo',target=functionTwo)
    t3 = threading.Thread(name='functionThree',target=functionThree)

    t1.start()
    t2.start()
    t3.start()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:54:01