Función no definida error al utilizar la importación

He creado dos archivos en python La primera es mym.py

def hello():
    print("Hello everyone")
    return
def summ(x,y):
    total=x+y
    return total

y el siguiente es abc.py

import mym

hello()
x=summ(3,4)
print(x)

Y el error msg que estoy recibiendo es...ambos archivos están en el mismo directorio de trabajo y no hay error de módulo no encontrado...es dar error de función no definido.

Traceback (most recent call last):
  File "C:/Users/Nisha/AppData/Local/Programs/Python/Python39/abc.py", line 3, in 
    hello()
NameError: name 'hello' is not defined

Traceback (most recent call last):
  File "C:/Users/Nisha/AppData/Local/Programs/Python/Python39/abc.py", line 3, in 
    x=summ(3,4)
NameError: name 'summ' is not defined

¿Cuál es el problema en la definición de función que soy incapaz de rastrear...

Pregunta hecha hace 3 años, 4 meses, 27 días - Por compilercaptain7dab


4 Respuestas:

  • El abc.py debe cambiarse a:

    from mym import *
    
    hello()
    x=summ(3,4)
    print(x)
    

    De lo contrario no puede acceder a las funciones.

    Respondida el Dec 19, 2020 a las 12:31 - por scriptsorcerer4f7e

    Votos positivos: 0 | Votos negativos: 0

  • Puedes probar así:

        import mym
        mym.hello()
        x = mym.summ(3,4)
        print(x)
    

    Respondida el Dec 19, 2020 a las 12:36 - por algoarchitect

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando se debe a la forma en que estás llamando las funciones desde el archivo abc.py. Cuando importas un módulo en Python, las funciones y variables definidas en ese módulo no se importan directamente al espacio de nombres global. En su lugar, debes acceder a esas funciones y variables a través del nombre del módulo.

    Para corregir el error, modifica tu archivo abc.py de la siguiente manera:

    python
    import mym
    
    mym.hello()
    x = mym.summ(3, 4)
    print(x)
    

    Al hacer esto, estás indicando que las funciones hello() y summ() se encuentran dentro del módulo mym. Al llamarlas a través de mym.hello() y mym.summ(), Python podrá encontrar y ejecutar esas funciones correctamente.

    Después de hacer esta modificación, ejecuta nuevamente abc.py y deberías poder llamar las funciones sin problemas.

    Respondida el Dec 20, 2020 a las 12:33 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El problema es que estás intentando utilizar las funciones hello y summ en el archivo abc.py sin importarlas primero. Para importar las funciones, debes añadir la siguiente línea al principio del archivo abc.py:

    python
    from mym import hello, summ
    

    Esto importará las funciones hello y summ del módulo mym, permitiéndote utilizarlas en el archivo abc.py.

    Una vez que hayas añadido la línea de importación, deberías poder ejecutar el script abc.py sin encontrar el error "Función no definida".

    Respondida el Dec 20, 2020 a las 12:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0