gpt4 book ai didi

python - 如何跳过自定义 __getattribute__ 方法?

转载 作者:行者123 更新时间:2023-11-30 21:59:22 30 4
gpt4 key购买 nike

为了更好地理解这个问题,这里有一个例子:

class Parent:
def __getattribute__(self, attr):
print('ha!')
return super().__getattribute__(attr)


class Bar(Parent):
my_attr = 'hi'

test = Bar()

print("----------")
print(test.my_attr)

在此示例中,Bar 对象具有无法更改的 Parent 父类(super class)。

当我读取Bar类型的对象的属性时,该属性总是首先通过父类(super class)Parent__getattribute__

该代码打印的结果是:

----------
ha!
hi

但是如何在不通过 Parent__getattribute__ 的情况下读取 test 的原始值?

最佳答案

您可以调用object.__getattribute__(test, 'my_attr')super(Parent, test).__getattribute__('my_attr')

未经测试。但我在我的转置对象演示中使用了它。访问代理对集合调用的所有访问的对象的属性。

关于python - 如何跳过自定义 __getattribute__ 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610793/

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