带有继承的示例代码,按预期工作。
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'))除了类名、方法名和返回类型之外,代码几乎是相同的。听起来好像我漏掉了什么很傻的东西。没有错误。你能提供一些指点吗?
发布于 2018-07-15 04:44:45
把它从
class MetaFileCompare(FileCompare):
def compare_files(self, actual_file, ref_file):
return super(FileCompare, self).compare_files(actual_file, ref_file,
0)至
class MetaFileCompare(FileCompare):
def compare_files(self, actual_file, ref_file):
return super(MetaFileCompare, self).compare_files(actual_file, ref_file,
0)这就是我犯的愚蠢的错误。
https://stackoverflow.com/questions/51345136
复制相似问题