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

Python类内部调用成员函数抛出NameError错误的问题咨询

问题原因与解决方法

错误原因

在Python类的__init__方法里直接调用do_thigy()时,Python会将其视为全局名称去查找,但这个方法是类的实例方法,仅定义在类内部,必须通过实例(即self)才能访问,因此找不到该名称,触发NameError。另外还存在拼写错误:方法名do_thigy应为do_thing,这也是潜在的问题点。

解决步骤

  • 修正方法名拼写:把do_thigy改为do_thing,避免后续调用的拼写问题
  • 通过self调用实例方法:在__init__里用self.do_thing()替代直接调用do_thigy()

修正后的代码:

class Thing:
    def do_thing(self):
        pass
    def __init__(self):
        self.do_thing()

a = Thing()

额外说明:Python类名通常遵循PEP8规范采用大驼峰命名法(如Thing而非thing),能提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:34:56