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

Python创建类实例时报'module' object is not callable错误怎么解决?

问题原因

你触发报错的核心原因是Python中模块和类的引用逻辑和Java存在差异:你通过import rectangle导入的rectangle是模块对象(对应你本地的rectangle.py文件),而非模块内部定义的rectangle类,直接将模块作为构造函数调用就会触发'module' object is not callable报错。

修复方案

有两种常用修复方式:

  • 方式1:导入时直接引入模块内的类
    将导入语句修改为:
from rectangle import rectangle

后续实例化逻辑a = rectangle(4,5)无需修改即可正常运行。

  • 方式2:保留原导入规则,实例化时明确指定类的所属模块
    将实例化代码修改为:
a = rectangle.rectangle(4,5)

即通过模块名.类名的格式定位到你实际要调用的类。

额外优化建议
  • 按照Python通用编码规范,模块名建议用小写,类名建议用大驼峰命名,你可以将类名修改为Rectangle,避免出现模块和类同名导致的混淆问题,也更符合行业通用写法。
  • 你当前代码中__str__方法返回的是元组而非字符串,后续执行打印时会触发类型错误,建议修改为字符串拼接格式,例如:
def __str__(self):
    return f"this is a {self.l} by {self.w} rectangle with an area of {self.getArea()}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:06