entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Porque no imprime el valor asignado a ' j ' ?

def a():
    b=1
    print b

    def c():
        j=4
        print j
print a() 

1 Respuesta

2votos

white Puntos75880

Hola Ariel, como que no te imprime la variable j? talvez lo que quieres es retornar la variable j y imprimirla desde fuera asi:

def a():
    b="esto imprime b"
    print(b)

def c():
    j="esto contiene j"
    return j

a()
print c()

este ejemplo imprime:

esto imprime b
esto contiene j

cuando llamas a print tiene que haber un valor, no puede ser void por decirlo de alguna manera.

PD: recuerda que en python 3 para usar print se usa parentesis print("hello world")

0voto

Ariel comentado

si, pero, si pones la funcion def c() dentro de la funcion def a() por que no imprime lo que tiene la funcion def c() ??

def a():
    b=1
    print b

    def c():
        j=4
        print j

print a() 

0voto

white comentado

por que es una funcion local, y no la has llamado desde la funcion que la contiene,
talvez no te estoy entendiendo bien, deseas algo asi? :

def a():
    b=1
    print b
    def d():
        i=5
        print i
    d()

def c():
    j=4
    print j
    a()

c()

edit: pueda ser que lo que quieras sea POO en python, pero intento entenderte talvez algo asi, suponiendo que requieres acceso de la "sub funcion" llamandola desde afuera

def a():
    hello = "hello"
    print hello

    def b():
        return "world"
    a.b = b()

    return a

test = a()
print test.b

0voto

Ariel comentado

ya entiendo muchisimas gracias :)

0voto

Peter comentado

Ariel, si esta es la solución, por favor marca la respuesta como correcta.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta