Skip to main content

Fundamentos de Python: estruturas de dados - Trad. 2º edição norte-americana

Page 50

Programação básica em Python

lyst.append(item) except EOFError: fileObj.close() break print(lyst)

# Fim da entrada detectado aqui

31

Criando classes Uma classe descreve os dados e os métodos pertencentes a um conjunto de objetos. Ele fornece uma planta para criar objetos e o código a ser executado quando os métodos são chamados neles. Todos os tipos de dados no Python são classes. A sintaxe de uma definição de classe Python é: def

<nome da classe> (<nome da classe pai>): <atribuições de variável de classe> <definições de método de instância>

Os nomes das classes são escritos em maiúscula por convenção. O código para uma definição de classe geralmente entra em um módulo cujo nome de arquivo é o nome dessa classe em letras minúsculas. Classes relacionadas podem aparecer no mesmo módulo. O nome da classe pai é opcional; nesse caso, presume-se que seja object. Todas as classes Python pertencem a uma hierarquia, com object na raiz. Vários métodos, como __str__ e __ eq__, são definidos em object e são herdados automaticamente por todas as subclasses. Como veremos mais adiante, esses métodos fornecem comportamento padrão mínimo para quaisquer novas classes. Métodos de instância são executados em objetos de uma classe. Incluem código para acessar ou modificar variáveis de instância. Uma variável de instância refere-se ao armazenamento man-

tido por um objeto individual.

Variáveis de classe referem-se ao armazenamento mantido em comum por todos os objetos de

uma classe.

Para ilustrar essas ideias, esta seção explorará agora o código para a definição de uma classe Counter. Um objeto contador, como o nome indica, rastreia uma contagem de inteiros. O valor de um contador é inicialmente 0 e pode ser redefinido como 0 a qualquer momento. Você pode aumentar ou diminuir um contador, obter seu valor inteiro atual, obter sua representação de string ou comparar dois contadores para igualdade. Eis o código para a classe: class Counter(object): """Modela um contador.""" # Variável de classe instances = 0 # Construtor def __init__(self):

Fundamentos de Python_estruturas de dados_miolo.indb 31

22/02/2022 10:37:02


Turn static files into dynamic content formats.

Create a flipbook