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

Python中对应Java MyClass.class.getName()的无实例类名获取方法

Python 无实例场景下可靠获取类名方案

核心实现方式

Python 中类本身是一等对象,无需创建实例即可直接访问类的__name__属性获取类名,类重命名后该属性会自动同步更新,彻底避免硬编码字符串失效的问题。

代码示例

不可靠的硬编码写法

unreliable_name = "MyClass" # MyClass 重命名后该值不会同步更新,会产生错误

可靠的动态获取写法

reliable_name = MyClass.__name__ # MyClass 重命名后该值会自动同步为最新类名,始终正确

扩展功能实现

如果需要实现类似C#nameof关键字的通用能力,支持获取函数、变量等任意标识符的名称,可以自行实现简单的工具函数:

def nameof(identifier):
    return identifier.__name__

# 用法示例
print(nameof(MyClass)) # 输出类名
print(nameof(custom_func)) # 输出自定义函数名

如果需要获取类似JavagetName()返回的包含模块路径的全限定类名,可以拼接类的__module__和__qualname__属性:

# 获取全限定类名,包含模块路径与嵌套类结构信息
full_class_name = f"{MyClass.__module__}.{MyClass.__qualname__}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 03:45:03