gpt4 book ai didi

不继承属性的Python子类

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:24 24 4
gpt4 key购买 nike

我想创建一个 Python 类,表面上看起来是另一个类的子类,但实际上并没有继承它的属性。

例如,如果我的类名为 B,我希望 isinstance(B(), A) 返回 True,以及 issubclass(B, A),但我不希望 B 具有为 A 定义的属性。这可能吗?

注意:我不控制A的实现。

我为什么关心:我正在使用的模块检查传递的对象是否是 A 的子类。我想在 B 中定义必要的属性,而不继承 A 中定义的多余属性(我不控制其实现),因为我正在使用 __getattr__ 将一些属性调用传递给包装类,如果这些属性是通过从 A 继承定义的,则不会调用 __getattr__

最佳答案

在 Python3 中,覆盖特殊方法 __getattribute__。这使您几乎可以完全控制属性查找。有一些极端情况,因此请仔细检查文档(它是语言引用手册的第 3.3.2 节)。

关于不继承属性的Python子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275148/

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