Resolví tal problema y me encontré con un problema.
Aquí está el contenido de la oración: Usando el comando "escriba" verifique el tipo de objeto devuelto por la función (imprimir) y el método-hola la clase Persona.
aquí está el código que he escrito hasta ahora:
class Person:
def __init__(self, name="John", surname="Douglas"):
self.name= name
self.surname= surname
def hello(self):
print("Hello" + self.name + " " + self.surname)
Person.hello= "text"
p = Person()
p.hello()
y me gustaría comprobar el tipo de objeto devuelto por el método Hello de la clase Persona.
usando el siguiente comando:
print (type(p.hello()))
sin embargo, este comando no devuelve nada; no sé si hace bien el trabajo. Me gustaría pedir ayuda/consejo.
¡Le agradezco de antemano cada respuesta!
Utilice p.hello en lugar de p.hello(). El primero es el método en sí, mientras que el segundo es el resultado de llamar al método (que resulta ser Ninguno)
- Alex Grounds
28/03/2021 a las 17:51
@AlexGrounds: Parece que se supone que deben imprimir el tipo del valor de retorno, en lugar del tipo del método.
Usuario2357112
29 de marzo de 2021 a las 7:04
------------------------------------
Creo que esto es lo que estás intentando lograr
class Person:
def __init__(self, name="John", surname="Douglas"):
self.name= name
self.surname= surname
def hello(self):
#return the string
return "Hello " + self.name + " " + self.surname
#Person.hello= "text"
#instantiate class Person outside the class
p = Person()
#p.hello()
print(type(p.hello()))
Cualquier cosa que hayas creado dentro de la función y quieras acceder a ella fuera, debes devolverla
------------------------------------
Debería tener un valor de retorno antes de verificar su tipo, como la respuesta de SP_.
Solo quiero agregar que si va a verificar el tipo de datos en algunas cláusulas if-else, entonces isinstance() es una mejor opción que comparar su tipo usando type(). Me gusta:
p = Person()
if isinstance(p, Person):
print("do something")