huashengzi 发表于 2020-3-25 00:13:34

老版0基础入门python45课,我设置和改变属性后,属性的值还一直是返回None

老版0基础入门python45课,我设置和改变属性后,属性的值还一直是返回None
我已经使用super函数调用了基类的正常动作,为什么还是返回None?

class A():
    def __init__(self,x):
      self.x=100

    def __getattr__(self, item):
      print("没有属性时被调用啦")

    def __getattribute__(self,item):
      print("有属性时被调用啦")
      super().__getattribute__(item)

    def __setattr__(self, item, value):
      print("set被调用啦")
      super().__setattr__(item,value)

    def __delattr__(self,item):
      print("删除被调用啦")
      super().__delattr__(item)

c= A(10)


print(c.x)
c.x=100
print(c.x)
b=c.x


print(c.x)

heidern0612 发表于 2020-3-25 07:48:31

本帖最后由 heidern0612 于 2020-3-25 08:13 编辑

没有return的值。




class A():
        def __init__(self,x):
                self.x=x

        def __getattr__(self,item):
                print("check value")

        def __getattribute__(self,item):
                print("get value")
                return super().__getattribute__(item)

        def __setattr__(self, item, value):
                print("set value")
                return super().__setattr__(item,value)

        def __delattr__(self,item):
                print("del setting")
                super().__delattr__(item)
       
c= A(10)
print(c.x)

c.x=100
print(c.x)

b=c.x
print(c.x)

zltzlt 发表于 2020-3-25 08:04:35

class A():
    def __init__(self,x):
      self.x=100

    def __getattr__(self, item):
      print("没有属性时被调用啦")

    def __getattribute__(self,item):
      print("有属性时被调用啦")
      return super().__getattribute__(item)

    def __setattr__(self, item, value):
      print("set被调用啦")
      super().__setattr__(item,value)

    def __delattr__(self,item):
      print("删除被调用啦")
      super().__delattr__(item)

c= A(10)


print(c.x)
c.x=100
print(c.x)
b=c.x


print(c.x)
页: [1]
查看完整版本: 老版0基础入门python45课,我设置和改变属性后,属性的值还一直是返回None