Python Orientado a Objetos 1
Tags: python, poo, beginners, programming
Published: 2023-07-17 23:17:21

Olá! Meu nome é Melyssa e este é meu primeiro artigo por aqui! Irei iniciar falando sobre Python Orientado a Objetos. Para ler o conteúdo abaixo é necessário já saber o básico dessa linguagem. Aceito sugestões e críticas construtivas, no futuro irei escrever sobre Python para quem irá ter o primeiro contato com a linguagem ❤️

# Python Orientado a Objetos

Para trabalhar com Objetos em Python, primeiro precisamos criar uma classe que é onde vamos armazenar o bloco de código do nosso Objeto. Para criar uma classe é necessário usarmos o termo class e em seguida nomear nossa classe - seguindo o padrão CamelCase - seguido de dois pontos e depois a palavra pass que funciona como um return. Confira o código de exemplo abaixo:

```python
class CodigoTeste:

	pass
```

Depois que a classe é feita, precisamos enfim criar o objeto para ela e para isso criamos uma variável que vai armazenar a class feita. Exemplo: teste = CodigoTeste() e assim temos nosso primeiro Objeto.

Podemos criar funções dentro da nossa class para armazenar e organizar melhor nossas informações, assim com funções já existentes no Python - que são chamados de métodos construtores, como por exemplo: **init**(self) que é uma função normalmente utilizada para o começo dos códigos. O parâmetro self é onde vai ficar a referência do nosso Objeto.

```python
class CodigoTeste:
	def __init__(self, nome, idade, estado):
		self.nome = nome
		self.idade = idade
		self.estado = estado
```

Após feito isso apenas precisamos passar as informações dentro de nossa variável no terminal, como por exemplo: teste = CodigoTeste(’Melyssa’, 19, ‘São Paulo’) e pronto, criamos mais um Objeto!

Para acessar as informações que foram passadas dentro dos Objeto é extremamente simples, precisamos apenas chamar a variável que desejamos acessar e utilizar o ponto (.) junto do parâmetro que queremos acessar. Por exemplo: teste.nome vai retornar ‘Melyssa’.

## Método privado

Caso tenhamos algum método dentro da nossa class que gostaríamos de informar e tornar privado, precisamos usar __ antes de seu nome. Assim o Dev que ver nosso código vai entender que aquele método é privado e que deve não deve ser utilizado diretamente e sim por outro método. O ideal no caso de querer modificar ou acessar uma informação privada, é criando um método get (no caso de pegar a informação) e set (no caso de modificar a informação), como por exemplo:

```python
class CodigoTeste:
	def __init__(self, nome, idade, estado):
		self.__nome = nome
		self.__idade = idade
		self.__estado = estado

	def get_nome(self):
		return self.__nome

	def set_idade(self, idade):
		self.__idade = idade

teste = CodigoTeste('Melyssa', 19, 'SP')
teste.get_nome()
'Melyssa'
teste.set_idade(20)
```

## Propriedades

Também podemos usar propriedades para fazer com que “métodos” se transformem em um Objeto. Utilizamos essas propriedades em classes privadas, acessando-a e modificando algo. Como por exemplo, podemos criar uma propriedade que sempre deixe a primeira letra do nome de uma pessoa em caixa alta, evitando erros de sintaxe, para isso usamos o @property logo acima. Exemplo:

```python
class Nome:

	def __init__(self):
		self.__nome = nome

	@property
	def nome(self):
		return self.__nome.title()

teste = Nome('melyssa')
teste.nome
'Melyssa'
```

Lembrando que o nome da nossa propriedade precisa ser o mesmo nome do Objeto que desejamos alterar.

Caso queira mudar o valor do nome, também podemos utilizar uma propriedade setter, onde utilizamos a seguinte sintaxe: @(nome do atributo).setter. Assim podemos modificar os valores do nosso método desejado. Veja o código de exemplo abaixo:

```python
@nome.setter
def nome(self, nome):
	self.__nome = nome

teste = Nome('Melyssa')
teste.nome = 'daniel'
teste.nome
'Daniel'
```

## Métodos da Class (static methods)

Caso queiremos programar um método onde todos os Objetos compartilham a mesma informação em comum, podemos usar os métodos estáticos. Por exemplo, uma conta do Banco do Brasil sempre vai ter o código da conta como ‘001’, então podemos criar um objeto estático para ele. Para isso utilizamos o @staticmethod logo acima da nossa função desejada. Veja o código abaixo:

```python
@staticmethod
def codigo__BB():
	return '001'
```

Como você pode notar, esse método não possui o parâmetro self, que é o responsável por armazenar a referência do Objeto.

Aqui acaba a primeira parte de Python Orientado a Objetos e logo publicarei a parte 2. Espero que tenham gostado, obrigada por terem lido até aqui! =)