Я новичок в Python, и я сталкиваюсь с некоторыми проблемами, когда речь идет о частных функциях. Я хочу вызвать два из них в публичном методе, просто для того, чтобы сделать код понятным, но я не могу понять вообще, что показывает ошибка времени выполнения. Вот проблематичной частью полного кода:Как правильно использовать частные функции в Python?
def __loadVec(self,vec,res):
for i in range(0,res.getRows()):
for j in range(0,res.getColumns()):
vec.append(self.matrix[i][j])
return
def __savetoMatrix(self,vec,res):
index = 0
for i in range(0,res.getRows()):
for j in range(0,res.getColumns()):
self.matrix[i][j] = vec[index]
index += 1
return
def fmatrixSort(self,res):
try:
print "Sorting matrix information..."
vec = []
self._matrix.__loadVec(vec,res)
vec.sort()
self_matrix.__savetoMatrix(vec,res)
except TypeError:
print "TypeError in fmatrixSort"
return
То, что я пытаюсь сделать, это полностью организовать матрицу так, как он начинает с наименьшим значением и заканчивается самым высоким.
Это ошибка программы показывает:
Traceback (most recent call last):
File "MatrixClass.py", line 211, in <module>
main()
File "MatrixClass.py", line 203, in main
mat.fmatrixSort(res)
File "MatrixClass.py", line 154, in fmatrixSort
self._matrix.__loadVec(vec,res)
AttributeError: matrix instance has no attribute '_matrix'
Как мне это исправить?
Не используйте class-private '__identifiers' в Python. Они существуют по совершенно другой причине, чем частные члены в Java/C++ и не являются их заменой. – msw
ваш код borken, что такое 'self_matrix'; также ваша проблема не вызвана из-за __methods, но отсутствует атрибут self._matrix! –