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

如何修改Python中类的打印格式,仅显示类名而非完整模块路径?

解决方法

可以通过自定义元类修改类被打印时的输出格式。Python里的类本身是type的实例,默认的type.__repr__会输出带完整模块路径的格式,重写元类的__repr__方法后,使用该元类的类在打印时只会显示类名。

示例代码

class SimpleReprMeta(type):
    def __repr__(cls):
        # 仅返回类名,去除模块路径前缀
        return cls.__name__

# 用自定义元类定义类
class Foo(metaclass=SimpleReprMeta):
    pass

# 多层模块下的类(比如位于a.b.c.d.e模块中)
class Bar(metaclass=SimpleReprMeta):
    pass

# 测试打印效果
print(Foo)  # 输出: Foo
print(Bar)  # 输出: Bar

如果想让所有类都生效(不推荐,会影响内置类和第三方库类),可以直接修改type的__repr__:

original_type_repr = type.__repr__
type.__repr__ = lambda cls: cls.__name__

# 测试内置类
print(str)  # 输出: str
print(list)  # 输出: list

临时查看类名的话,也可以直接访问类的__name__属性:

print(Foo.__name__)  # 输出: Foo

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:57:00