def花 发表于 2020-8-9 12:49:45

怎么解决这个问题

>>> class A:
        a = []
        def append(self,value):
                super().self.a.append(value)

               
>>> c = A()
>>> c.append(5)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
    c.append(5)
File "<pyshell#11>", line 4, in append
    super().self.a.append(value)
AttributeError: 'super' object has no attribute 'self'
懂我意思吧,哈哈哈

zltzlt 发表于 2020-8-9 12:50:27

又没继承自其他类,你调用 super() 干嘛?

class A:
      a = []
      def append(self,value):
                self.a.append(value)

def花 发表于 2020-8-9 12:53:29

zltzlt 发表于 2020-8-9 12:50
又没继承自其他类,你调用 super() 干嘛?

这样两个append不会矛盾吗

zltzlt 发表于 2020-8-9 12:56:06

def花 发表于 2020-8-9 12:53
这样两个append不会矛盾吗

不会呀,一个是 self 的 append,一个是 self.a 的 append

def花 发表于 2020-8-9 13:06:34

zltzlt 发表于 2020-8-9 12:56
不会呀,一个是 self 的 append,一个是 self.a 的 append

那我把它改成继承list行不行
>>> class A(list):
      a = []
      def append(self,value):
                super().self.a.append(value)

               

zltzlt 发表于 2020-8-9 13:07:35

def花 发表于 2020-8-9 13:06
那我把它改成继承list行不行

如果这样的话你直接 super().append(value) 就行了
页: [1]
查看完整版本: 怎么解决这个问题