首页 > 解决方案 > 在类定义期间获取类名

问题描述

我正在尝试在类定义期间创建对类名称的访问。

class Foo:
    print('Creating class Foo')

有没有办法通过明确指定重写来创建对名称的引用?

就像是:

class Foo:
    print('Creating class', __class_name__)

Out[1]: Creating class Foo

原因是我想创建一个存在于类中的记录器对象。

标签: pythonclassoop

解决方案


那没有。如果您的目标只是减少明确提及类名的地方的数量,我会推荐一个“私有”类属性,它至少可以在词法上保持在语句的开头,以便更容易找到应该您决定更改班级的名称。

class Foo:
    _name = 'Foo'

    class_logger = logger.getChild(_name)

(这个答案早于对问题的编辑,该问题删除了__class_name__在定义记录器中的使用作为示例。)


推荐阅读