2011-10-27 8 views
1

Je veux écrire une fonction pour créer une matrice carrée vide ayant la taille NxN. J'ai 2 façons d'écrire cela:Quelle est la manière la plus pythonique?

1:

s_matrix = [] 
create_empty_square_matrix(s_matrix, N) 

2:.

s_matrix = empty_square_matrix(N) 

(Ofcourse, 2 deux fonctions seront différentes d'un bit Fonction create_empty_square_matrix est comme une procédure - seulement manipuler sur s_matrix Fonction empty_square_matrix créer & retourner une matrice)

De quelle façon est plus Pythonic & plus clair?

Avez-vous des suggestions sur le style de nommage? Je ne suis pas sûr de empty_square_matrix & create_empty_square_matrix.

Répondre

3

Je préférerais toujours la deuxième façon. Le problème avec le premier est que vous passez l'objet que vous voulez écrire en tant que paramètre (s_matrix), et l'appelant de la fonction devra savoir qu'il doit être passé une liste vide. Que se passe-t-il si l'appelant passe une dict ou une liste qui n'est pas vide? Par ailleurs, si vous voulez faire des calculs matriciels, vous devriez jeter un oeil à la bibliothèque NumPy, elle offre beaucoup de choses que Python standard ne fait pas.

+0

Non seulement Pythonic, mais en général - sans état, le code sans effets secondaires est bien meilleur car il ne dépend pas d'un état global. –

Questions connexes