Importar clase de subdirectorios en Python

Muhammad Maisam Abbas 10 octubre 2023
Importar clase de subdirectorios en Python

En este tutorial, discutiremos métodos para importar clases desde subdirectorios en Python.

Importar clases de subdirectorios con declaración import en Python3

En Python 3.x, importar clases desde el directorio actual o cualquier subdirectorio es muy fácil. Usaremos la siguiente estructura de directorios en este tutorial.

Main/
    main.py
    A.py
    B/
        B.py

Los archivos A.py y B.py contienen dos clases, Aclass y Bclass, que importaremos a la clase main.py. El código de A.py y B.py se muestra a continuación.

Archivo A.py:

class Aclass:
    a = 5

    def show(this):
        print("Hello! this is class A")

Archivo B.py:

class Bclass:
    b = 5

    def show(this):
        print("Hello! this is class B")

La instrucción import importa la Aclass y la Bclass en main.py. El siguiente ejemplo de código nos muestra cómo importar clases desde subdirectorios con la declaración import en Python.

from A import Aclass
from B.B import Bclass

var1 = Aclass()
var2 = Bclass()

var1.show()
var2.show()

Producción :

Hello! this is class A
Hello! this is class B

En el código anterior, importamos tanto Aclass como Bclass en el archivo main.py con la declaración import. Para los archivos en el mismo directorio, tenemos que usar la siguiente notación.

from filename import classname

El filename es el nombre del archivo y el classname es el nombre de la clase que se va a importar. Para los archivos en el subdirectorio, tenemos que seguir la siguiente notación.

from dirname.filename import classname

El dirname es el nombre del directorio en el que se encuentra el archivo, el filename es el nombre del archivo y el classname es el nombre de la clase que se va a importar. Para los archivos en subdirectorios o subdirectorios, tenemos que agregar otro .subdirname como se muestra a continuación.

from dirname.subdirname.filename import classname

El dirname es el nombre del directorio, el subdirname es el nombre del subdirectorio que contiene el archivo, el filename es el nombre del archivo y el classname es el nombre de la clase a ser importado.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Class