gpt4 book ai didi

python - 每次继承抽象类都可以运行代码吗?

转载 作者:行者123 更新时间:2023-11-28 20:30:39 24 4
gpt4 key购买 nike

我需要连接一个 django signal对于从抽象类继承的所有类。有没有像 __on_inherit__ 这样的神奇 python 方法,它允许我在每次继承我的抽象类时运行信号连接代码?

更新:为了澄清起见,我需要对每个类运行一次类评估代码,而不是每个实例/对象一次。

最佳答案

是的,确实有 [__init_subclass__][1] 钩子(Hook),每次子类化时都会触发它。

它将以第一个参数 cls 作为 子类(不是原始父类)调用。正如文档中所述,您甚至可以将任意参数从子类传递给 Hook 。

希望对你有帮助。

编辑:这是通过 PEP 487 [2] 在 Python 3.6 版中添加的。在早期的 Python 版本中,不会调用此方法。

[1] https://docs.python.org/3/reference/datamodel.html#object.init_subclass

[2] https://www.python.org/dev/peps/pep-0487/

关于python - 每次继承抽象类都可以运行代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787256/

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