Python 小萌新:为什么我的代码提示“AttributeError: module \'__main__\' has no attribute \'Student\'”?

python 小萌新遭遇 attributeerror 错误

问题背景

一位新手在编写 python 代码时,尝试获取自己定义的模块中函数的返回值,但遇到 attributeerror 错误。

错误详情

attributeerror: module '__main__' has no attribute 'student'

代码示例

class student:
    def __init__(self, name):
        self.name = name


class manager:
    def __init__(self, name):
        self.name = name


def main():
    # ...
    if cls == 'student':
        obj = student.cls(ret['username'])  # 根据类名实例化对象
    else:
        obj = manager.cls(ret['username'])

错误分析

在上述代码中,问题出现在第 12 行和 14 行,即在实例化 student 和 manager 对象时。在 python 中,类属性和方法只能通过类名直接访问。但在本示例中,却使用 student.cls 和 manager.cls 来访问它们。

在 python 中,__main__ 模块表示当前正在运行的脚本,其属性和方法只能通过 __main__ 模块直接访问。因此,在 __main__ 模块外,无法通过 student.cls 或 manager.cls 访问类属性和方法,会导致 attributeerror 错误。

解决方案

正确的应该使用以下方式实例化对象:

if cls == 'Student':
    obj = Student(ret['username'])
else:
    obj = Manager(ret['username'])

以上就是Python 小萌新:为什么我的代码提示“AttributeError: module '__main__' has no attribute 'Student'”?的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

11 天 Claude Fable 5 狂写超 100 万行代码:Rust 重构 JavaScript 运行时 Bun

7 月 11 日消息,开发者贾里德 · 萨姆纳(Jarred Sumner)于 7 月 8 日发布博文,宣布在 Claude Fable 5 模型的帮助下,耗时 11 天、耗费 16.5 万美元,已重构 JavaScript 运行时 Bun,从 Zig 完全重写为 Rust 语言。萨姆纳表示本次重构最主要的原因是提高可靠性,Zig 经常出现内存错误和崩溃,而且很难彻底修复。Rust 则能在编译时捕...

我的世界时间指令代码怎么用2026年

我的世界游戏里面有很多的指令,今天给大家带来了游戏里面的时间指令代码使用方法,还有小伙伴不清楚时间指令代码怎么用,那么下面就是相关的内容. 我的世界时间指令代码使用方法 时间指令是我的世界里面改变当前时间的。 不过首先我们的打开作弊模式,在输入框里面输入/time set day。 就可以调成白天模式,/time set night是调成黑夜模式的指令。 如果输入/time set +时间,就会跳...

英伟达 CEO 黄仁勋:相比写代码,我的软件工程师们更喜欢搭智能体

7 月 9 日消息,据《商业内幕》今天(9 日)报道,英伟达 CEO 黄仁勋在采访中提到,智能体系统已经成为一项新技能,英伟达目前有许多软件工程师参与智能体开发。“要我说,我的每个软件工程师都更愿意构建智能体,而不是写 Python 代码。”黄仁勋称,AI 让英伟达工程师减少了传统编码工作。在他看来,写代码更像是打字,现在的工程师更多转向构建智能体、设计基准测试和设置安全护栏。工程师要把枯燥工作交...

付费番剧解限制工具“哔哩漫游”收到B站律师函,GitHub 项目代码已删除

感谢网友 Coje_He、咩咩洋 的线索投递! 7 月 6 日消息,“哔哩漫游(BiliRoaming)”是一个解除B站客户端番剧区域限制的热门 Xposed 模块,还提供一些其他小功能,在 GitHub 上获得了超 11.4K 星标。今日,“哔哩漫游”的 GitHub 项目页面删除了全部代码,README 页面也附上了一份B站律师函。侵权告知函要求“哔哩漫游”开发者立即停止一切侵权行为,包括但不...

让你的代码永存于世,微软 GitHub 推出代码仓库刻录 CD-ROM 实体光盘服务

感谢网友 Skyraver 的线索投递! 7 月 3 日消息,微软旗下的代码托管平台 GitHub 今天宣布推出代码仓库刻录 CD-ROM 实体光盘服务。值得注意的是,GitHub 官方还用一番玩味十足的语气宣发这项服务:我们听到了大家的声音,并表示认同。鉴于近期实体媒介的发展,GitHub 欣然宣布:你现在可以将自己的公开仓库刻录成 CD-ROM 实体光盘。你可以把你的代码收藏起来、借给朋友,或...

我的世界雷雨指令代码怎么用

我的世界雷雨指令代码使用方法:1.首先在游戏中按下t键,进入聊天界面;2.然后输入/weather thunder指令;3.出现更换到雷雨天气时代表成功。 详细答案: 1.首先在游戏中按下t键,进入聊天界面。 2.然后输入/weather thunder指令。 3.出现更换到雷雨天气时代表成功。 本文内容来源于互联网,如有侵权请联系删除。

Claude写代码学习路线提示词怎么要求AI给修改理由

请在每次代码修改后,用「修改理由」小节逐条列出改动点,并对应说明技术依据(如Python PEP规范、常见安全漏洞类型、性能瓶颈原理、可读性通用原则等)。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你想让Claude在帮你修改代码时,不只是给出改完的版本,还要清楚说明每一处调整背后的逻辑和依据,避免盲目接受修改却不知为何这样改。 明确要...

Midjourney做儿童课程封面提示词怎么控制标题和正文比例

儿童课程封面需通过提示词权重、--ar 9:16与--zoom 1.2参数及垫图法协同控制排版:标题用title::3加权上移至顶部1/3,正文降权至bullet points::-2缩小,--ar 9:16适配竖屏,--zoom 1.2划定安全内容区,并用“clean layout with clear hierarchy”强化层级。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态...