Declaración de retorno de clase no imprime ninguna salida

Estoy aprendiendo sobre Clases y tengo un problema con la statement de return (¿es una statement? Espero que sí), el progtwig no imprime nada, solo termina sin hacer nada.

 class className: def createName(self, name): self.name = name def displayName(self): return self.name def saying(self): print("Hello %s" % self.name) first = className() second = className() first.createName("Jack") second.createName("Joy") first.displayName() second.displayName() 

Sé que estoy haciendo algo tan obviamente mal, pero realmente no sé qué. Apreciaría alguna ayuda.

Para responder a su pregunta, return no imprime nada, pero es un poco confuso, ya que el indicador interactivo de python imprime el valor de la última statement, por ejemplo:

 Python 2.7.2 (default, Jun 20 2012, 16:23:33) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 1+1 2 

Pero si crea un archivo con contenido 1+1 y lo ejecuta como un script de Python, no se imprime nada.

Ya que dices que eres un novato, te daré algunos consejos sobre cómo mejorar tu código.

 class className: def createName(self, name): self.name = name def displayName(self): return self.name def saying(self): print("Hello %s" % self.name) 

className tiene redundancia, debe cambiar el nombre de su clase solo Name ; también las nuevas clases de estilo deberían heredar siempre el object , así que cambiemos un poco su definición:

 class Name(object): def createName(self, name): self.name = name def displayName(self): return self.name def saying(self): print("Hello %s" % self.name) 

La creación de algo se hace automáticamente al anular el __init__() las clases __init__() . p.ej:

 class Name(object): def __init__(self, name): self.name = name def displayName(self): return self.name def saying(self): print("Hello %s" % self.name) 

de esta manera, ya puede inicializar su nombre al crear una instancia de su clase, por ejemplo,

 first = Name("Jack") 

En segundo lugar, la display se maneja de forma idiomática al reemplazar el método __repr__ por ejemplo

 class Name(object): def __init__(self, name): self.name = name def __repr__(self): return self.name def saying(self): print("Hello %s" % self.name) 

De esta manera, solo necesitas hacer dos cosas:

 >>> n = Name("Jack") >>> print n Jack