AttributeError:“超级”对象没有属性“ compare_files”

时间:2018-07-15 04:00:22

标签: python inheritance

具有可正常工作的继承的示例代码。

class Animal:
    def action(self, value_1, p=None):
        print ('Parent action %d %d' % (value_1, p))
        return value_1 + 1 + p

class Dog(Animal):
    def action(self, value):
        print ('Dog action in child')
        return super(Dog, self).action(value, 1)

print(Dog().action(10))

以下是继承的另一个示例,其中引发了以下错误。

  

AttributeError:“超级”对象没有属性“ compare_files”

class FileCompare:
    def compare_files(self, actual_filename, ref_filename, field_to_skip=None):
        return True

class MetaFileCompare(FileCompare):
    def compare_files(self, actual_file, ref_file):
        return super(FileCompare, self).compare_files(actual_file, ref_file,
                    0)

class WorkerFileCompare(FileCompare):
    def compare_files(self, actual_file, ref_file):
        return super(FileCompare, self).compare_files(actual_file, ref_file,
                    5)

print (WorkerFileCompare().compare_files('a', 'b'))

除类名,方法名和返回类型外,代码几乎相同。听起来好像很傻。没有错字错误。您能提供一些提示吗?

1 个答案:

答案 0 :(得分:1)

更改自

{{1}}

{{1}}

这是我犯的愚蠢错误。