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