我要遵循良好的编程习惯,所以我有点停留在这个问题:访问来自继承类的私有方法在python
可以说我有类根,
Class root(Object):
def __init__(self):
self._root_tree = 'Base'
def __str__(self):
return self._root_tree
def _test(self):
return 'test'
可以说,我创建一个名为橡树
Class Oak(root):
def __str__(self):
return 'Oak'
def _test(self):
return 'Oak_test'
def _new_fun(self):
return 'new_func_only_in_oak'
然后在此类樱桃类,我可以做以下
Class Cherry(root):
def _grab_trees(self,another_tree): #another_tree is a Oak object
other_tree = another_tree.__str__() #this will return Oak
return 'The other three is: ' + other_tree
def _test2(self,another_tree):
return another_tree._test()
def _testing_new(self,another_tree):
return another_tree._new_fun()
基本上在Cherry类中调用__str__()
_new_fun()
和_test()
有效(良好做法)。
那么...又是什么问题? – 2012-08-02 02:17:01
'Cherry'类方法不访问它们自己实例的超类的私有方法,它们正在访问那些通过额外参数(即非自身属性)传递给它们的实例的方法。这打破封装。 – martineau 2012-08-02 03:13:06