【问题标题】:Query attribute name together with its class查询属性名称及其类
【发布时间】:2021-12-28 17:06:40
【问题描述】:

可以使用__name__ 询问属性名称。不过,我也想查询一下类名:

class Test:
    __slots__ = ['a', 'b']

print(Test.a.__name__) # → 'a' but wanted 'Test.a' or only the class 'Test'

【问题讨论】:

    标签: python string class magic-methods classname


    【解决方案1】:

    听起来你想要__qualname__

    class Test:
        __slots__ = ['a', 'b']
    
    Test.a.__qualname__
    # gives 'Test.a'
    

    https://www.python.org/dev/peps/pep-3155/

    还有只获取类名的神奇方法吗?

    您可以通过Test.a.__objclass__ 获取课程本身。所以类的名称可以通过

    Test.a.__objclass__.__name__
    # gives 'Test'
    

    【讨论】:

    • 啊,谢谢!还有只获取类名的神奇方法吗?
    • 是的:我已将其添加到我的答案中。
    • 感谢这两个解决方案!只想指出__objclass__ 不如__qualname__ 灵活,尤其是函数不支持
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2018-03-14
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多