2011-10-27 88 views
1

我想寫一個函數來創建一個大小爲NxN的空方陣。 我有2種方法來寫:哪種更適合pythonic?

1:

s_matrix = [] 
create_empty_square_matrix(s_matrix, N) 

2:

s_matrix = empty_square_matrix(N) 

(Ofcourse,2個兩個函數將不同的位功能create_empty_square_matrix就像是一個程序 - 只函數empty_square_matrix創建&返回一個矩陣)

哪種方式更Pythonic &更清晰?

你對命名風格有一些建議嗎?我不確定empty_square_matrix & create_empty_square_matrix

回答

3

我總是比較喜歡第二種方式。

第一個問題是您將要寫入的對象作爲參數傳遞給參數(s_matrix),並且函數的調用者必須知道它必須傳遞一個空列表。如果調用者傳遞字典或非空列表會發生什麼情況?順便說一句,如果你想做矩陣計算,你應該看一下NumPy庫,它提供了許多標準Python不支持的東西。

+0

不僅Pythonic,而且在一般情況下 - 無狀態,無副作用的代碼更好,因爲它不依賴於全局狀態。 –