2010-10-17 7 views
12

Es mi día 1 de aprendizaje de python. así que es una pregunta novato para muchos de ustedes. Véase el siguiente código:Salida adicional ninguna mientras se imprime un argumento de línea de comando

#!/usr/bin/env python 

import sys 

def hello(name): 
    name = name + '!!!!' 
    print 'hello', name 

def main(): 
    print hello(sys.argv[1]) 


if __name__ == '__main__': 
    main() 

cuando lo ejecuto

$ ./Python-1.py alice 
hello alice!!!! 
None 

Ahora, tengo problemas para entender donde esta "None" vino?

Respuesta

21

Cuente el número de print declaraciones en su código. Verá que está imprimiendo "hello alice!!!" en la función hello, y imprimiendo el resultado de la función hello. Como la función hello no devuelve un valor (que haría con la instrucción return), termina devolviendo el objeto None. Su print dentro de la función main termina imprimiendo None.

+0

Muchas gracias por una respuesta súper rápida y una explicación detallada. He entendido lo que dijiste. – CuriousMind

4

Cambiar la

def main(): 
    print hello(sys.argv[1]) 

a

def main(): 
    hello(sys.argv[1]) 

Está imprimiendo explícitamente el valor de retorno de su método hola. Como no tiene un valor de retorno especificado, devuelve None que es lo que ve en la salida.

+0

¡Muchas gracias! – CuriousMind

Cuestiones relacionadas