gpt4 book ai didi

python - 在创建 Python 类时调用类方法

转载 作者:太空狗 更新时间:2023-10-29 20:46:10 24 4
gpt4 key购买 nike

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

最佳答案

您可以使用 metaclass 来做到这一点或 class decorator .

类装饰器(自 2.6 起)可能更容易理解:

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

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

元类更强大;他们可以在创建类之前和之后调用代码并修改类的成分(而且,它们可以被继承):

def call_clsinit(*args, **kwargs):
cls = type(*args, **kwargs)
cls._clsinit()
return cls;

class MyClass(object):
__metaclass__ = call_clsinit

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

关于python - 在创建 Python 类时调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com