clase - python - devuelve el tipo de una función de objeto/llamada a método

CorePress2024-01-25  87

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")

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare