• Conceitos de P.O.O

Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Introdução sobre classes
  2. Declarar classe
  3. Instanciar um objeto
  4. Básico sobre atribuitos
  5. Básico sobre métodos
  6. Declarar classe interna
  7. Uso de type e isinstanceof

O comando pass utilizado nos exemplos a seguir pode ser visto em Python Básico: Função

Em Python classes, representam o esqueleto de objetos, são declaradas utilizando um modificador de acesso, a palavra reservada class e um nome de classe como pode ser visto na sintaxe abaixo:

Sintaxe
class nome_classe:
    #corpo
Onde
class: palavra reservada para informar que a definição de classe.
nome_classe: nome da classe que desejamos criar
Exemplo 1
class nome_classe:
    pass
Saída
-

A criação de objetos ou instanciação de objetos na linguagem Python é feita utilizando construtor da classe. Em Python não é necessário o uso da palavra new como em outras linguagens como C# e Java.

Sintaxe
nome_objeto = nome_classe()

Quando instanciamos um objeto utilizado a sintaxe acima, estamos invocando o método construtor padrão. Esse assunto será visto mais adiante.

Exemplo 2
class nome_classe:
    #corpo

classe = nome_classe()
Saída
-

As classes que possuem codificação são chamadas de classes concretas. Além de classe concreta, a linguagem Python tem suporte a classes abstratas que serão vistas em Python: Classe Abstrata e Interface.

Classes em Python possuem atributos irão armazenar informações sobre nossos objetos. Para declará-los, utilizamos os tipos de dados primitivos, tipos nativos ou objetos do usuário.

Sintaxe
class nome_classe:
    nome_atributo = <valor>
Exemplo 3
class nome_classe:
    atributo1 = 1 
    atributo2 = 'Teste'
Saída
-

Tanto os modificadores de acesso quanto os atribuitos serão vistos em Python: Atributos e Herança.

Além de atribuitos, as classes possuem métodos, que são funções que pertencem apenas às classes e são invocados por uma instância de objeto. O assunto método será visto em Python: Métodos e Sobrecarga.

Sintaxe
def nome_metodo(<lista_parametros>):
    #corpo
Exemplo 4
class nome_classe:
    #atributos omitidos

    def metodo(p1,p2):    #método
        print(p1,p2)
Saída
-

Python permite que nossas classes possuam outras classes declaradas internamente em seu corpo. Esse tipo de classe interna ou aninhada possui as mesmas características de uma classe, exceto pelo seu escopo.

Sintaxe
class nome_classe_externa:
    #corpo

    class nome_classe_interna:
        #corpo

A instanciação de objetos utilizando classes internas é feita utilizando o nome da classe com escopo mais externo seguido do operador (.).

Sintaxe
nome_objeto = objeto_classe_externa.nome_classe_interna()
Exemplo 5
class classe:
    pass

    class filha:
        pass

#instanciando       
obj = classe #classe
obj = classe.filha #classe interna
Saída
-

No exemplo abaixo, declaramos atributos e um método em um classe interna:

Exemplo 6
class classe:
    pass

    class filha:
        atributo1 = 1 
        atributo2 = 'Teste'

        def metodo(p1,p2):    #método
            print(p1,p2)

#instanciando       
obj = classe #classe
obj = classe.filha #classe interna
Saída
-

Classes mais externas, em relação ao escopo, não podem acessar diretamente os recursos de classes internas. Classes internas, de forma semelhante, não podem acessar diretamente recursos de uma classe mais externa.

Para checar o tipo de dado de um objeto, utilizamos um função nativa type:

Sintaxe
type(object)
Exemplo 7
class nome_classe:
    pass

classe = nome_classe()

print(type(classe))
Saída
class '__main__.nome_classe'>

Parar verificar ou checar se um objeto possui é de um tipo específico de classe, utilizamos a função nativa isinstance:

Sintaxe
isinstance(object, classinfo)
Onde
object: objeto para verificar
classinfo: nome da classe para verificação
Retorno
True se object é do tipo classinfo. False caso contrário
Exemplo 8
class Classe1:
    pass

obj1 = Classe1()

if isinstance(obj1, Classe1):
    print("obj1 é do tipo Classe1")
else:
    print("obj1 não é do tipo Classe1")
Saída
obj1 é to tipo Classe1
  1. 12/09/2025 - revisão 2 - Ajustes: pontuais, target de links internos, sintaxes e objetivos; Adição: Ex.6 e checando objeto
  2. 19/09/2024 - revisão 1 - Ajustes gramaticais; correção em sintaxe 'Atributos';
  3. 19/02/2024 - versão inicial