Durante a criação da instância da classe, Python adiciona o argumento self à lista para você. Você não precisa incluí-lo ao chamar os métodos.
Usaremos o seguinte exemplo para explicarmos melhor.
class Pessoa:
"""Classe Pessoas"""
pessoas=3
def __init__(self, nome,genero,data_de_nascimento,pais,altura,peso):
self.nome = nome
self.genero=genero
self.data_de_nascimento=data_de_nascimento
self.pais = pais
self.altura=altura
self.peso=peso
def info_pessoa(self):
print("Nome : " + self.nome)
print("Genero : " + self.genero)
print("Nascimento : " + str(self.data_de_nascimento))
print("Pais : " + self.pais)
print("Altura : " + str(self.altura))
print("Peso : " + str(self.peso))
Agora, para criar instâncias desta classe, veja o seguinte exemplo:
Criando algumas objetos com diferentes valores que contem o method __init__() dentro da classe Pessoa
# Isso criaria o primeiro objeto da classe Pessoa
obj_1 = Pessoa('Joao','M','10/10/2021','Angola',1.5,15)
# Isso criaria o segundo objeto da classe Pessoa
obj_2 = Pessoa('Joana','F','10/10/2021','Brazil',1.5,15)
# Isso criaria o terceiro objeto da classe Pessoa
obj_3 = Pessoa('Elena','M','10/10/2021','Portugal',1.5,15)
Exemplo Completo
class Pessoa:
"""Classe Pessoas"""
pessoas=3
def __init__(self, nome,genero,data_de_nascimento,pais,altura,peso):
self.nome = nome
self.genero=genero
self.data_de_nascimento=data_de_nascimento
self.pais = pais
self.altura=altura
self.peso=peso
def info_pessoa(self):
print("Nome : " + self.nome)
print("Genero : " + self.genero)
print("Nascimento : " + str(self.data_de_nascimento))
print("Pais : " + self.pais)
print("Altura : " + str(self.altura))
print("Peso : " + str(self.peso))
# criando algumas objetos com diferentes valores que contem o method __init__() dentro da classe Pessoa
# Isso criaria o primeiro objeto da classe Pessoa
obj_1 = Pessoa('Joao','M','10/10/2021','Angola',1.5,15)
# Isso criaria o segundo objeto da classe Pessoa
obj_2 = Pessoa('Joana','F','10/10/2021','Brazil',1.5,15)
# Isso criaria o terceiro objeto da classe Pessoa
obj_3 = Pessoa('Elena','M','10/10/2021','Portugal',1.5,15)
# Acessando os metodos da classe Pessoa com os valores do primeiro Objecto que criamos
print("\nInformacoes do Objeto 1 \n")
# Acessando o method info da classe Pessoa
obj_1.info_pessoa()
print("-----------------------------\n")
# Acessando os metodos da classe Pessoa com os valores do segundo Objecto que criamos
print("Informacoes do Objeto 2 \n")
# Acessando o method info da classe Pessoa
obj_2.info_pessoa()
print("-----------------------------\n")
# Acessando os metodos da classe Pessoa com os valores do terceiro Objecto que criamos
print("Informacoes do Objeto 3 \n")
# Acessando o method info da classe Pessoa
obj_3.info_pessoa()
------------------------ Resultado -----------------------
Informacoes do Objeto 1
Nome : Joao
Genero : M
Nascimento : 10/10/2021
Pais : Angola
Altura : 1.5
Peso : 15
-----------------------------
Informacoes do Objeto 2
Nome : Joana
Genero : F
Nascimento : 10/10/2021
Pais : Brazil
Altura : 1.5
Peso : 15
-----------------------------
Informacoes do Objeto 3
Nome : Elena
Genero : M
Nascimento : 10/10/2021
Pais : Portugal
Altura : 1.5
Peso : 15
Python POO - Atributos de classe especial em Python
Exceto para atributos de classe autodefinidos em Python, classe tem alguns atributos especiais. Eles são fornecidos pelo módulo de objeto.
Nome do Atributo Descrição
__dict__ Variável Dict do espaço de nome da classe
__doc__ Cadeia de caracteres de referência de documento da classe
__name__ Nome da classe
__module__ Nome do Módulo que consiste na classe
__bases__ A tupla incluindo todas as superclasses
0 Comentários