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

Python出现NameError: name 'mobile' is not defined错误,求排查帮助

错误原因分析

你触发NameError: name 'mobile' is not defined的核心问题是代码缩进错误:

  • 你把main()函数和if __name__=='__main__'的执行逻辑都缩进在了mobile类的内部。
  • 在Python中,类定义是从上到下执行的,当类内部的main()函数尝试创建mobile实例时,mobile类还没完成完整的定义,解释器无法识别这个类名;同时main()变成了类的方法,直接调用也不符合语法逻辑。
修正后的代码
class mobile:
    def __init__(self,brandname,color,isjack):
        self.brand=brandname
        self.color=color
        self.isjack=isjack

    def calling(self):
        print('calling')

    def cameraclick(self):
        print('picture is clicked')

    def message(self):
        print('message_sent')

# 将main函数移到类外部,作为独立函数
def main():
    m1=mobile('apple','black',False)
    print(m1.brand)
    print(m1.color)
    print(m1.isjack)
    m1.calling()
    m1.cameraclick()
    m1.message()   

    print("-------------------")

    m2=mobile('samsung','grey',False)
    print(m2.brand)
    print(m2.color)    
    print(m2.isjack)
    
if __name__=='__main__':
    main()
额外说明
  • Python是缩进敏感语言,代码块的缩进决定了它所属的作用域,类内部的缩进属于类的成员(方法或属性),全局逻辑需要和类定义保持同级缩进。
  • 修正后,main()作为全局函数,在类定义完成后执行,此时mobile类已经被解释器识别,就能正常创建实例了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:34