Python 在类定义期间获取类名称

Python 在类定义期间获取类名称,python,class,oop,Python,Class,Oop,我试图在类定义期间创建一个访问类名称的方法 Foo类: 打印('创建类Foo') 有没有一种方法可以通过显式指定重写来创建引用名称的方法 比如: Foo类: 打印('创建类',_类\名称_;) Out[1]:创建类Foo 原因是我想创建一个生活在类内部的logger对象。没有。如果您的目标只是减少显式提到类名的地方的数量,那么我建议使用“private”class属性,该属性至少可以在词汇上保持在语句开头附近,以便在您决定更改类名时更容易查找 class Foo: _name = '

我试图在类定义期间创建一个访问类名称的方法

Foo类:
打印('创建类Foo')
有没有一种方法可以通过显式指定重写来创建引用名称的方法

比如:

Foo类:
打印('创建类',_类\名称_;)
Out[1]:创建类Foo


原因是我想创建一个生活在类内部的logger对象。

没有。如果您的目标只是减少显式提到类名的地方的数量,那么我建议使用“private”class属性,该属性至少可以在词汇上保持在语句开头附近,以便在您决定更改类名时更容易查找

class Foo:
    _name = 'Foo'

    class_logger = logger.getChild(_name)

(这个答案出现在对问题的编辑之前,该问题删除了在定义记录器时使用
\uu class\u name\uu
作为示例。)

我实际上找到了一种在Python 3.3+上实现这一点的方法

它被称为限定名

这是执行此操作的代码:

Foo类:
打印(‘创建类’,_质量名称_;)

实际上有一种方法可以使用
\uuuuu qualname\uuuu
\uuuuu qualname\uuuu
作为现有对象的属性进行记录。我不确定这有多可靠。