我是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'
我應該如何解決這個問題?
請勿在Python中使用類專用的__identifiers。它們的存在原因與Java/C++中的私有成員完全不同,並不能替代它們。 – msw
你的代碼是borken,什麼是'self_matrix';你的問題也不是由__methods引起的,而是缺少self._matrix屬性! –