获取给定类对象的修饰类的名称

问题描述 投票:0回答:1

我有装饰器函数和一个简单的装饰类:

import typing


def mydeco(cls: type) -> typing.Callable:
    def inner(*args: typing.Any, **kwargs: typing.Any) -> object:
        return cls(*args, **kwargs)

    return inner


@mydeco
class Wheels:
    def __init__(self, count: int) -> None:
        self.count = count


if __name__ == "__main__":
    print(Wheels)                         # <function mydeco.<locals>.inner at 0x7f8d663b6d40>
    print(Wheels.__class__)               # <class 'function'>
    print(Wheels.__qualname__)            # mydeco.<locals>.inner
    print(Wheels.__class__.__name__)      # function
    print(Wheels.__class__.__qualname__)  # function
    print(type(Wheels))                   # <class 'function'>

我想要的是检索类似这样的内容

<class '__main__.Wheels'>
,或者至少只是类的名称
Wheels

python python-decorators python-3.10
1个回答
0
投票

我正在寻找的信息保存在

Wheels
对象的更深处:

print(Wheels.__closure__[0].cell_contents)  # <class '__main__.Wheels'>

这正是我需要的

© www.soinside.com 2019 - 2024. All rights reserved.