Conteúdo:
Aprender a programação orientada a objetos em Python do básico foi explicada aqui discutindo os seguintes tópicos com exemplos.
Classe e objeto:
Em programação orientada a objetos, aula é usado para declarar a estrutura de dados definida pelo usuário que contém o conjunto de atributos. Os atributos podem ser as variáveis de classe, variáveis de instância e métodos. As variáveis acessíveis por todas as instâncias da classe são chamadas de variáveis de classe. As funções declaradas dentro da classe são chamadas de métodos. As variáveis definidas dentro de qualquer método de classe e acessíveis pela instância atual da classe são chamadas de variáveis de instância. Uma aula é declarada em Python, definindo a palavra -chave de classe seguida por um nome de classe e cólon (:). A sintaxe da classe é definida abaixo.
Sintaxe da classe:
Classe ClassName:Uma instância ou cópia de uma classe é chamada de objeto usado para acessar as variáveis de classe e os métodos de classe. Uma aula é inútil sem declarar um objeto porque o aula contém a descrição do objeto que não aloca nenhuma memória. O objeto é declarado mencionando o nome da classe com os primeiros suportes iniciais e finais. Se o aula contém qualquer método construtor com os parâmetros, então você deve definir o valor dos parâmetros no momento de objeto declaração. A sintaxe do objeto é dada abaixo.
Sintaxe do objeto:
Object_name = classe_name ()ou
Object_name = classe_name (value1, value2,…)A declaração de uma classe simples e a declaração de objeto dessa classe mostraram no script a seguir. Uma aula chamada 'Livro'foi declarado aqui que contém três variáveis de classe (Book_name, Author_Name e Price) e um método chamado book_discount_price (). O método calculará o preço do livro após um desconto de 5% e imprimirá os detalhes do livro com o preço original e o desconto. A variável de objeto nomeada ObjBook foi definida no script para criar a instância da classe e chamar o método da classe.
ClassandObject.py
# Defina a classeSaída:
A saída a seguir aparecerá após a execução do script acima.
Construtor:
O construtor é um método de uma classe chamada automaticamente na declaração de objeto da época. É usado principalmente para inicializar o objeto de uma variável. def A palavra -chave é usada para declarar qualquer método em uma declaração de classe Python, e o nome do método do construtor é __iniciar__() em Python. Dois tipos de construtores podem ser declarados em Python. Estes são o construtor sem parâmetros e o construtor parametrizado. Os usos de ambos os construtores mostraram nesta parte deste tutorial.
A. construtor sem parâmetro
O construtor que contém apenas um argumento chamado auto é chamado de construtor sem parâmetro ou padrão. Nenhum parâmetro é necessário para passar no momento da declaração de objeto de uma classe que contém o construtor sem parâmetros. A maneira de declarar um construtor sem parâmetros foi mostrado no script a seguir. Aqui o Cliente classe contém o construtor sem parâmetros que inicializará as quatro variáveis de classe quando qualquer objeto de classe será criado. Em seguida, um objeto da classe nomeado objcustomer foi declarado para acessar as variáveis da classe.
default_constructor.py
# Defina aula de clienteSaída:
A saída a seguir aparecerá após a execução do script acima.
B. Construtor parametrizado
O construtor que contém um ou mais argumentos com o 'auto'O argumento é chamado de construtor parametrizado. Você precisa passar os valores dos parâmetros no momento da criação de objetos da classe. A maneira de declarar o construtor parametrizado foi mostrado no script a seguir. Aqui o Cliente A classe é declarada com um construtor parametrizado e dois métodos. O método chamado balance_after_deposit () é definido para adicionar o valor do depósito com o saldo. O método chamado balance_after_withdraw () é definido para deduzir o valor da retirada do saldo. Em seguida, a variável de objeto é definida para exibir os detalhes básicos do cliente, o saldo após o depósito e o saldo após a retirada.
Parametized_Constructor.py
# Defina aula de clienteSaída:
A saída a seguir aparecerá após a execução do script acima. Aqui, o saldo de abertura é 200000. O saldo se torna 220000 depois de adicionar 30000 e deduzir 10000.
Herança:
Uma das características básicas da programação orientada a objetos é a herança. A maneira de criar uma nova classe a partir de uma classe existente é chamada de herança. A classe existente é chamada de classe pai ou classe base, e a nova classe herdada é chamada de Classe Child ou Derivada. A classe infantil conterá as características da classe base após a herança. Como a herança pode ser aplicada na classe Python mostrou no exemplo a seguir. No roteiro, o 'Estudante'é a classe pai e o'StudentDetails'É a classe infantil. Ambas as classes têm os construtores parametrizados. A classe pai tem um método chamado Exibir básico () Para imprimir as variáveis de ID, nome e e -mail da classe pai. A classe infantil tem um método chamado displayInfo () Para imprimir os valores do lote e variáveis semestre da classe infantil. O construtor da classe pai é chamado de construtor de classe infantil. Após a declaração de classe, o objeto da classe pai foi declarado com valores de três parâmetros para inicializar as variáveis de classe da classe pai, e o método da classe pai foi chamado para exibir esses valores. Em seguida, o objeto de classe infantil foi declarado com valores de três parâmetros para inicializar as variáveis de classe da classe infantil, e o método da classe infantil foi chamado para exibir esses valores.
herança.py
# Defina a classe paiSaída:
A saída a seguir aparecerá após a execução do script acima.
Encapsulamento:
Outra característica básica da programação orientada a objetos é o encapsulamento. A maneira de ocultar as variáveis e métodos específicos de uma classe é chamada de encapsulamento. É usado para definir a restrição para acessar os dados específicos. O principal objetivo desse recurso é fornecer segurança de dados pela ocultação de dados. O encapsulamento pode ser implementado em Python, declarando os membros de dados privados ou protegidos da classe. Como o encapsulamento pode ser implementado no Python mostrou no exemplo a seguir. No script, o Adicionar A classe criou herdando o Número aula. Um membro privado chamado '__resultado'declarou na classe infantil armazenar a soma de dois números, e essa variável é acessível apenas dentro da classe infantil. O construtor da classe pai inicializará duas variáveis de classe com os números. De acordo com o script, o construtor da classe criança chamará o construtor da classe pai, calculará a soma das variáveis de classe e imprimirá o resultado da adição. Após a declaração de classe, o objeto da classe infantil foi declarado. Em seguida, o membro privado da classe infantil usou na função de impressão que gerará um erro.
encalsulação.py
# Defina a classe paiSaída:
A saída a seguir aparecerá após a execução do script acima. Quando o objeto foi definido, o método do construtor foi chamado e a soma de 10 e 30 imprimiu. A mensagem de erro apareceu para tentar acessar o membro privado de fora da classe.
Polimorfismo:
Outra característica básica da programação orientada a objetos é o polimorfismo. O significado de poli é 'muitos' e morfismo é 'formas'. A maneira de declarar a mesma função várias vezes para fins diferentes é chamada de polimorfismo. A codificação se torna mais fácil para usar esse recurso do OOP. Esse recurso pode ser implementado usando o script python, como polimorfismo em diferentes classes, polimorfismo em classes herdadas, etc. Como o polimorfismo pode ser implementado em diferentes classes usando o script python mostrado no exemplo a seguir. No roteiro, duas classes não relacionadas denominadas retângulo e círculo foram declaradas. Ambas as classes têm o construtor parametrizado e um método nomeado área(). Aqui, ambas as classes contêm o mesmo método, mas o objetivo do método é diferente. Na classe retangular, o construtor inicializará duas variáveis nomeadas altura e largura, e a área() o método calculará a área do retângulo. Na classe Circle, o construtor inicializará uma variável nomeada raio, e a área() o método calculará a área do círculo. Depois de declarar a classe, dois valores numéricos serão retirados do usuário para passar os valores de altura e largura para o construtor do Retângulo classe no momento da declaração de objetos. Em seguida, o área() Método do Retângulo A classe será chamada para imprimir a área do retângulo com base nos valores de entrada. Depois disso, um valor numérico será retirado do usuário para passar o valor do raio para o construtor do Círculo aula no momento da criação de objetos. , o área() Método do Círculo A classe será chamada para imprimir a área do círculo com base no valor de entrada.
polimorfismo.py
# Defina a classe retânguloSaída:
A saída a seguir aparecerá após a execução do script acima. De acordo com a produção, 5 tomou como valor de altura e 2 tomou como valor de largura. Para esses valores, a área do retan0gle é 10 (5 × 2) que foi impressa. Em seguida, 2 tomou como valor de raio e a área do círculo é 12.56 (3.14x2x2) que foi impresso.
Getter e setter:
O método usado para ler o valor da propriedade é chamado getter, e o método usado para definir o valor da propriedade é chamado de setter. Na programação orientada a objetos, o getter é usado para acessar os atributos privados da classe, e o setter é usado para definir os valores dos atributos privados da classe. Os principais propósitos desse recurso são garantir o encapsulamento de dados e a validação de dados. O getter e o setter podem ser implementados usando a função normal ou @property decorador. Ambas as maneiras de implementar o setter e getter foram mostradas nesta parte do tutorial.
Setter e getter usando a função normal:
O script a seguir mostra como a função normal pode ser usada para implantar métodos de getter e setter. No script, o Pessoa A classe contém os métodos personalizados de getter e setter para ler os valores das variáveis de classe privada e definir o valor da variável de email que é um membro privado. O valor vazio passou para a variável de email no momento da criação de objetos, e o método do setter personalizado foi usado para definir o valor do email. O método Getter personalizado retornará todos os valores da variável de classe como uma lista.
Custom_Setter_getter.py
# Defina a classeSaída:
A saída a seguir aparecerá após a execução do script acima.
Setter e getter usando @property Decorator:
O script a seguir mostra como o Decorador @Property pode ser usado para implantar métodos de getter e setter. No script, o getter e o setter declararam usando o @property decorador para definir o valor do nome da variável, um membro da classe privada. Depois de declarar a classe, o objeto da classe foi definido e o valor da variável de nome foi atribuído e recuperado usando o setter e o getter.
decorator_setter_getter.py
# Defina a classeSaída:
A saída a seguir aparecerá após a execução do script acima.
Operador de sobrecarga e função:
Quando qualquer função ou operador é usado para um propósito diferente com base no parâmetro de função ou nos operandos em vez do uso normal da função ou operador, ela é chamada de sobrecarga. O recurso de reutilização pode ser implementado na programação orientada a objetos usando a sobrecarga do operador e a sobrecarga de funções. É uma característica útil do OOP, mas o uso excessivo desse recurso cria dificuldade em gerenciar o código. O simples uso da sobrecarga do operador e sobrecarga de funções na classe Python foi mostrado neste tutorial.
Sobrecarga do operador:
O operador é usado em dois operandos. O objetivo de cada operador é diferente. Por exemplo, existem muitos usos do operador '+', como pode ser usado para adição, combinando duas cordas, etc. Mas quando o operador '+' é usado para um propósito diferente, é chamado de sobrecarga do operador. As funções especiais são usadas para diferentes tipos de sobrecarga do operador. A função especial é declarada usando '__' no início e no final do nome da função. Muitas funções especiais de diferentes tipos de operadores existem no Python para sobrecarga do operador. O operador pode ser matemático, comparação operador, operador de atribuição, etc. O uso da função especial do operador matemático foi demonstrado nesta parte deste tutorial para entender o conceito de sobrecarga do operador no Python.
Operador Matemático:
Os operadores usados para operações aritméticas são chamadas de operador matemático. Esses operadores podem ser usados para um propósito especial usando uma função especial. Algumas funções especiais do operador matemático são mencionadas abaixo.
Nome do operador | Símbolo | Função especial |
---|---|---|
Adição | + | __Add __ (eu, outro) |
Subtração | - | __sub __ (eu, outro) |
Multiplicação | * | __mul __ (eu, outro) |
Divisão | / | __TrueDiv __ (eu, outro) |
Módulo | % | __mod __ (eu, outro) |
Poder | ** | __pow __ (eu, outro) |
Usando a função especial do operador de energia (**):
__Pancada__() A função especial é usada para sobrecarregar o operador de energia. O principal objetivo do operador de energia é calcular o valor de potência de um número específico. Mas se precisarmos calcular os valores de energia usando valores de ponto, então o operador de energia geral não funcionará. Suponha que haja dois pontos (3, 2) e (2, 4). Precisamos da soma de 32 e 24. Nesse caso, temos que usar a função especial do operador de energia. A função __pow __ () pode calcular a soma dos poderes com base nos valores de ponto mostrados no script a seguir. A classe SUMOFPOWER Contém um construtor parametrizado para inicializar duas variáveis de classe, __Pancada__() função para calcular a soma de dois poderes com base em valores pontuais e __str __ () função para imprimir o objeto da classe. Em seguida, dois objetos da classe foram declarados. O operador de energia usou duas variáveis de objeto na impressão () função para chamar o __Pancada__() função para concluir a operação.
operator_overloading.py
# Defina a classeSaída:
A saída a seguir aparecerá após a execução do script acima. 32 é 9 e 24 é 16. A soma de 9 e 16 é 25 que está sendo exibida na saída.
Sobrecarga da função:
Às vezes, precisamos escrever vários métodos que são bastante semelhantes, mas diferem em algumas partes apenas. Nesse caso, um único método pode ser definido para realizar as mesmas tarefas usando a sobrecarga de função. A complexidade do código pode ser removida e o código fica mais claro usando a sobrecarga de funções. A saída da função depende do argumento passado para a função. Como a sobrecarga de função pode ser implementada no Python mostrou no script a seguir. O principal objetivo do script é executar quatro tipos de operações aritméticas com o valor padrão ou os valores aprovados no momento da criação de objetos. O método chamado calcular () tem sido usado aqui para fazer as operações aritméticas. O método foi chamado quatro vezes no script para realizar quatro tipos de tarefas. Quando o método chama sem nenhum argumento, ele exibirá apenas uma mensagem. Quando o método chama com '+' como valor de argumento, ele calcula os valores padrão. Quando o método chama com '-' e um valor numérico como valores de argumento, subtrairá o segundo valor padrão do valor do argumento. Quando o método chama com '*' e dois valores numéricos como valores de argumento, ele calculará dois valores de argumento.
function_overloading.py
# Defina a classeSaída:
A saída a seguir aparecerá após a execução do script acima. 'Nenhum operador é dado'A mensagem impressa para chamar o método sem nenhum argumento. A soma de 25 e 35 foi impressa para chamar o método com um argumento. O valor da subtração de 50-35 foi impresso para chamar o método com dois valores de argumento. O valor de multiplicação de 3 e 2 imprimiu para chamar o método com três valores de argumento. Dessa forma, a sobrecarga de funções foi implementada no script para usar a mesma função várias vezes.
Conclusão:
A programação básica orientada a objetos em Python foi explicada neste tutorial usando exemplos de python muito simples. As características mais comuns do OOP são discutidas aqui para ajudar os leitores a conhecer o caminho do OOP em Python e capazes de escrever o programa Python usando classe e objeto.