Importar classe de subdiretórios em Python

Importar classe de subdiretórios em Python

Neste tutorial, discutiremos métodos para importar classes de subdiretórios em Python.

Importar classes de subdiretórios com a instrução import em Python3

No Python 3.x, importar classes do diretório atual ou de qualquer subdiretório é muito fácil. Usaremos a seguinte estrutura de diretório neste tutorial.

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

Os arquivos A.py e B.py contêm duas classes, Aclass e Bclass, que importaremos para a classe main.py. Os códigos de A.py e B.py são mostrados abaixo.

Arquivo A.py:

class Aclass:
    a = 5

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

Arquivo B.py:

class Bclass:
    b = 5

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

A instrução import importa o Aclass e o Bclass em main.py. O exemplo de código a seguir nos mostra como importar classes de subdiretórios com a instrução import em Python.

from A import Aclass
from B.B import Bclass

var1 = Aclass()
var2 = Bclass()

var1.show()
var2.show()

Resultado:

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

No código acima, importamos Aclass e Bclass no arquivo main.py com a instrução import. Para os arquivos no mesmo diretório, devemos usar a seguinte notação.

from filename import classname

O filename é o nome do arquivo e o classname é o nome da classe a ser importada. Para os arquivos no subdiretório, devemos seguir a seguinte notação.

from dirname.filename import classname

O dirname é o nome do diretório no qual o arquivo está localizado, o filename é o nome do arquivo e o classname é o nome da classe a ser importada. Para os arquivos em subdiretórios ou subdiretórios, temos que adicionar outro .subdirname como mostrado abaixo.

from dirname.subdirname.filename import classname

O dirname é o nome do diretório, subdirname é o nome do subdiretório que contém o arquivo, o filename é o nome do arquivo e o classname é o nome da classe a ser importado.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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

Artigo relacionado - Python Class