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.
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