Curso de Programação Python usando Linux - Parte Cinco

Python é uma linguagem de programação muito popular.


Nesta série de posts para o curso de programação em Python usando Linux, decidimos experimentar uma abordagem diferente. Em vez de começarmos pelo básico (os tijolos, por assim dizer), começamos com o edifício inteiro e depois lidamos com suas partes.

Neste caso, o alicerce é o paradigma conhecido como Programação Orientada a Objetos. Para concluir esta parte do curso, analisaremos os principais conceitos desse paradigma aplicados à programação em Python. Lembre-se de que o link para a publicação anterior está no final deste artigo.

Curso de programação em Python usando Linux

Conceitos-chave de Programação Orientada a Objetos aplicados ao Python

Classe

É o modelo usado para construir objetos. Ele define a aparência e as funcionalidades de um objeto. É semelhante a uma receita culinária. É definido com o comando:

class Nombre_de_la_clase

atributos

Essas são as características que descrevem um objeto. Elas atuam como variáveis ​​pertencentes exclusivamente à classe.

Construtor

É um método especial que é executado automaticamente ao criar um objeto. Ele é responsável por inicializar os atributos do objeto.
Métodos

São funções definidas dentro de uma classe que determinam o comportamento do objeto.

Herança

É a capacidade de uma classe herdar as características e comportamentos de outras classes existentes, adicionando e modificando o que já existe. A classe da qual as características são herdadas é chamada de classe pai, e aquela que as recebe, com grande falta de originalidade, é chamada de classe filha.

Polimorfismo

Falando em falta de originalidade, essa característica significa que classes diferentes podem ter métodos com o mesmo nome, mas com comportamentos diferentes.
Manipulando arquivos em Python

Nos exemplos que fornecemos anteriormente, as informações estavam incluídas no código. Esse método é impraticável, pois o código precisa ser modificado sempre que informações precisam ser adicionadas ou excluídas. Felizmente, existem outras maneiras de fazer isso, como ler os dados de um arquivo.
Criamos um arquivo de texto simples com o título system.txt e o conteúdo

Ubuntu

26.04

Debian

Agora vamos analisar o programa.

class Sistemas:
Definimos uma classe chamada SYSTEMS, como havíamos feito anteriormente.
def __init__(self, nombre, version, derivada):
Iniciamos o construtor automático que lida com a atribuição dos parâmetros.
self.nombre = nombre
self.version = version
self.derivada = derivada

Essas linhas salvam os atributos recebidos como valores de objeto.
def mostrar_info(self):
Defina como as informações do atributo serão exibidas.
print(f"Nombre: {self.nombre}")
print(f"Versión: {self.version}")
print(f"Derivada: {self.derivada}")

Instruções para imprimir os atributos do objeto na tela. As chaves inserem os valores das variáveis ​​dentro do texto.
with open("sistema.txt", "r") as archivo:
Este comando abre o arquivo em modo de leitura e o fecha assim que o bloco for concluído.
lineas = archivo.readlines()
Ele lê todas as linhas de um arquivo e as salva em uma lista. Falaremos sobre listas em arquivos posteriores.
nombre = lineas[0].strip()
version = lineas[1].strip()
derivada = lineas[2].strip()

Acesse cada linha pela sua posição e remova quebras de linha e espaços com o comando strip.
sistema = Sistemas(nombre, version, derivada)
Crie uma instância do objeto da classe Systems com os parâmetros lidos do arquivo.
sistema.mostrar_info()
Chame o método responsável por imprimir na tela.
A função open()

A função open() é predefinida em Python e requer os seguintes parâmetros:

Envie o

Este campo é obrigatório e indica ao programa onde encontrar o arquivo. Se estiver na mesma pasta que o programa, basta informar o nome e a extensão do arquivo. Caso contrário, o caminho completo do arquivo também deve ser especificado.
open("archivo.txt") Quando o arquivo estiver na pasta atual.
open("carpeta/archivo.txt") Quando o arquivo está dentro de outra pasta.
open("/home/usuario/archivo.txt") A pasta dentro da pasta pessoal de um usuário específico é indicada.
open(3); Um arquivo é identificado pelo identificador que lhe é atribuído pelo sistema operacional.
Moda
É um parâmetro opcional que indica como o arquivo será tratado.

    • rModo somente leitura. Retorna um erro se o arquivo não tiver sido criado anteriormente.

>wEscreve o arquivo e o cria se ele não existir. Exclui o conteúdo existente.

  • aCrie o arquivo se ele não existir. Se houver conteúdo, escreva até o final dele.
  • xCria o arquivo. Retorna um erro se ele não existir.
  • r+Lê e escreve o arquivo; retorna um erro se ele não tiver sido criado anteriormente.
  • w+Lê e escreve no arquivo. Apaga o conteúdo existente.
  • a+Leia e escreva no final do conteúdo.
  • tEsta é a opção padrão; ela funciona com cadeias de texto.
  • bEle funciona com bytes. É ideal para trabalhar com imagens ou PDFs.

tamponamento

Trata-se do controle da memória temporária antes da escrita de um arquivo. Não precisa ser especificado, mas em alguns casos pode ser útil.

  • 0Sem buffer, grava diretamente no disco. Ideal para trabalhar com o modo B.
  • 1Este é o modo padrão. Ele armazena os dados carregados até encontrar um caractere de nova linha e, em seguida, os grava na variável. É usado apenas no modo texto.
  • =Após o sinal de igual, um valor em bytes é definido para indicar o tamanho que o buffer deve ter.
  • -1O sistema operacional determina o tamanho do buffer.

Alguns exemplos

open("archivo.txt", buffering=0) Não cria o buffer porque estamos trabalhando em modo binário.
open("archivo.txt", buffering=1) O buffer funciona com quebras de linha
open("archivo.txt", buffering=4096) Define um buffer de 4096 bytes
open("archivo.txt", buffering=-1) Usa o buffer padrão do sistema operacional.

codificação

Define a codificação de caracteres para o projeto. Se não for especificada, será utilizada a codificação do sistema.

erros

Outro parâmetro opcional. Define o que fazer quando forem encontrados erros de codificação.

  • Estrito: Indica um erro quando ele é encontrado.
  • Ignorar: Ignore os caracteres que não consegue decodificar.
  • Substituir: Substitua caracteres não identificados por pontos de interrogação.
  • substituir barra invertida: Substitua os caracteres ignorados pela sequência \xNN

Nova linha

Outro parâmetro opcional, mas que pode ser útil ao trabalhar com arquivos gerados por diferentes sistemas operacionais, é a quebra de linha. Uma quebra de linha é um caractere invisível que indica ao sistema operacional que uma linha terminou e a próxima começa.

Continuaremos a desenvolver este tópico e a explicar novas instruções no próximo artigo.

Programa em Python que ilustra o conceito de herança de classes.
Artigo relacionado:
Curso de Programação Python com Linux - Parte 4