2012-02-18 13 views
5

Por ejemplo, ahora estoy aprendiendo wxPython, específicamente una clase función init:¿Debo memorizar el orden de los argumentos de función al aprender un nuevo módulo?

__init__(self, parent, id=-1, label=EmptyString, pos=DefaultPosition, 
size=DefaultSize, style=0, name=StaticTextNameStr) 

Como cuestión de buena práctica de programación, debería memorizar el orden de los parámetros, o sólo las palabras clave y llamar a la función usando las palabras clave cada vez? ¿Es mejor hacer esto último para la legibilidad?

Respuesta

4

Memorizar? No. Para eso está la documentación (incluido el código fuente).

Dicho esto, a veces el uso de argumentos de palabras clave ayuda a la claridad del código, en particular para las funciones que toman una gran cantidad de parámetros. Y siempre debe esforzarse por escribir código claro, especialmente en Python, donde el código fuente debe complementar la documentación.

2

que hay que buscar en la firma de la función real, no sólo lo que la documentación afirma que debería ser. Dado que el método se declara como __init__(self, *args, **kwargs), el único que importa para la posición es parent, ya que los demás deben llamarse por palabra clave de todos modos. Sin embargo, es posible que desee seguir el orden de las palabras clave que figuran en la documentación, solo para reducir la cantidad de sorpresa cuando usted u otra persona mira el código nuevamente.

0

Mozart quizá podría haber memorizado las bibliotecas de software modernos. El resto de nosotros confiamos en IDEs inteligentes con finalización de código y documentos de referencia. Dicho esto, sí, debería leer los documentos para ver qué hay, tal vez incluso tomar notas. Una API bien escrita (por ejemplo, las bibliotecas de Apple) está diseñada para que los nombres y prototipos tengan un significado y se adhieran al lector.

p. Ej.

int main(int argc, char *argv[]); 
-(void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section; 

Y así sucesivamente. Un buen entrevistador le pedirá que haga algunos de estos (para que sepa que no pasará todo el día aprendiendo API), pero también le dará cierta indulgencia si no puede recordar todos los parámetros.

Cuestiones relacionadas