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
相关产品推荐
相关产品推荐

