我已经学习了以JAVA为第一语言的OOP原则,然后我已经转移到Python,所以这个特殊的功能对我来说看起来有点奇怪,虽然在很多情况下很有用。在父类中访问子类属性是一个好主意
但是,我想知道它是否真的可取。
以下将在JAVA中给出错误,因为您不能在父类中访问子类的属性。
class parent(object):
def print_x(self):
print self.x
class child(parent):
x = 10
child().print_x()
PEP8也给在这种情况下,一个警告:
未解决的属性引用 'X' 类 '父'
代码遍历和调试变得有点问题我个人想法。
既然你可以* *'实例上parent'其自身,这将产生一个错误,*是*,这是有问题的。 Python比Java更具动态性,并且在编译时不检查它。与Java中的原因一样,它仍然是不好的代码。 – deceze