在创建Python类时调用类方法

2024-06-16 15:05:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在类创建时自动运行一些代码,这些代码可以调用其他类方法。我没有从类声明本身中找到这样做的方法,最后创建了一个名为__clsinit__@classmethod,并在类声明之后立即从定义范围调用它。是否有一个方法可以定义为在类对象创建后自动调用它?在


Tags: 对象方法代码声明定义classmethodclsinit
1条回答
网友
1楼 · 发布于 2024-06-16 15:05:18

您可以使用metaclassclass decorator来完成此操作。在

类修饰符(从2.6开始)可能更容易理解:

def call_clsinit(cls):
    cls._clsinit()
    return cls

@call_clsinit
class MyClass:
    @classmethod
    def _clsinit(cls):
        print "MyClass._clsinit()"

元类的功能更强大;它们可以在类创建之前或之后调用代码并修改类的成分(也可以继承):

^{pr2}$

相关问题 更多 >