不弃_ 发表于 2022-3-10 23:03:09

继承

为什么小甲鱼写的没事,我写就有问题?class C():
    def __getattr__(self,name):
      print('getattribute')
      return super().__getattr__(name)

c = C()
print(c.x)

isdkz 发表于 2022-3-10 23:06:51

本帖最后由 isdkz 于 2022-3-10 23:14 编辑

你这里没有显式继承其它类,默认继承 object 类,

object 类并没有 __getattr__ 方法,__getattribute__ 倒是有一个,

你的对象没有 x 属性,所以 c.x 也会报错,

你可以改成这样:
class C():
    def __getattribute__(self,name):
      print('getattribute')
      return super().__getattribute__(name)

c = C()
c.x = 5
print(c.x)

python爱好者. 发表于 2022-3-11 06:41:06

你没继承啊!

阿萨德按时 发表于 2022-3-11 08:38:10

{:10_256:}

小阳19 发表于 2022-3-11 08:57:21

加油!{:10_249:}

罗巴乔 发表于 2022-3-11 09:48:06

有道理

甲鱼python 发表于 2022-3-11 10:41:48

{:10_254:}

gandixiwang 发表于 2022-3-11 15:59:54

{:10_254:}

不弃_ 发表于 2022-3-11 17:01:35

isdkz 发表于 2022-3-10 23:06
你这里没有显式继承其它类,默认继承 object 类,

object 类并没有 __getattr__ 方法,__getattribute__ ...

哦,索德斯内
页: [1]
查看完整版本: 继承