[Aprenda python do zero] 39. Gramática básica orientada a objetos e exemplos de aplicações

Gramática Básica Orientada a Objetos

Em Python, os objetos estão em quase todos os lugares e podemos usar dirfunções internas para visualizar os métodos desse objeto.

Defina uma classe simples (contém apenas métodos)

Orientado a objetos é um encapsulamento maior, encapsulando vários métodos em uma classe, de forma que os objetos criados através desta classe possam chamar diretamente estes métodos!

definir classe

Para definir uma classe que contém apenas métodos em Python, a sintaxe é a seguinte:

class 类名:
    def 方法1(self,参数列表):
        pass
    def 方法2(self,参数列表):
        pass

O formato de definição do método é o mesmo da função aprendida anteriormente. O primeiro parâmetro no método deve ser self, lembre-se dele por enquanto e introduza-o mais tarde self. Os nomes das classes devem seguir a convenção de nomenclatura camelCase superior.

Criar um objeto de instância

Após a conclusão de uma definição de classe, use esta classe para criar um objeto, a sintaxe é a seguinte:

对象变量名 = 类名()

primeiro código orientado a objeto

precisar

O gatinho adora comer peixe e o gatinho quer beber água.

analisar

  • Defina uma classe de gato Cat.
  • Defina dois métodos eate drink.
  • Conforme necessário - nenhuma propriedade precisa ser definida.
class Cat:
    """这是个猫类"""

    def eat(self):
        print("小猫在吃东西")

    def drink(self):
        print("小猫在喝水")

tom = Cat()  # 创建了一个Cat对象
tom.eat()
tom.drink()

hello_kitty = Cat()  # 又创建了一个新的Cat对象
hello_kitty.eat()
hello_kitty.drink()

Pensando: tomÉ e hello_kittyo mesmo objeto?

uso de si mesmo

Adicionar propriedades aos objetos

Python oferece suporte a atributos dinâmicos. Quando um objeto é criado, 对象.属性名 = 属性值você pode facilmente adicionar um atributo ao objeto usando-o diretamente.

tom = Cat()
tom.name = 'Tom'  # 可以直接给 tom 对象添加一个 name 属性

Esse método é conveniente, mas não é recomendável adicionar propriedades a objetos dessa maneira.

O conceito de si

Qual objeto chama o método, selfquem é referido no método. Através self.属性名das propriedades deste objeto pode ser acessado, através self.方法名()do método deste objeto pode ser chamado.

class Cat:
    def eat(self):
        print("%s爱吃鱼" % self.name)

tom = Cat()
tom.name = 'Tom'  # 给 tom 对象添加了一个name属性
tom.eat()  # Tom爱吃鱼

lazy_cat = Cat()
lazy_cat.name = "大懒猫"
lazy_cat.eat() # 大懒猫爱吃鱼

Desvantagens de adicionar propriedades diretamente aos objetos

No código acima, criamos o objeto primeiro e depois adicionamos o atributo name ao objeto, mas haverá problemas ao fazer isso.

tom = Cat()
tom.eat()
tom.anme = "Tom"

Quando o programa for executado, um erro será relatado:

AttributeError: 'Cat' object has no attribute 'name'

Mensagem de erro: o objeto 'Gato' não possui o atributo 'nome'.

No desenvolvimento diário, não é recomendado adicionar propriedades diretamente a objetos fora da classe. Quais propriedades o objeto deve ter, devemos encapsulá-las dentro da classe.

Caso avançado

[Python] Python realiza o jogo de adivinhação de palavras - desafie sua inteligência e sorte!

[python] Biblioteca Python tkinter implementa programa GUI para conversor de unidade de peso

[python] Use Selenium para obter entradas (2023 Blog Star)

[python] Use o Selenium e o Chrome WebDriver para obter informações do artigo no [Tencent Cloud Studio Practical Training Camp]

Use o estúdio Tencent Cloud Cloud para realizar o agendamento do Baidu AI para realizar o reconhecimento de texto

[Fun with Python series [Xiaobai must see] Python multi-threaded crawler: baixe fotos de sites de pacotes de emoticons

[Jogue com a série Python] [Imperdível para Xiaobai] Use Python para rastrear dados históricos de Shuangseqiu e analisá-los visualmente

[Jogue com a série python] [Imperdível para Xiaobai] Use a tecnologia de rastreador Python para obter o IP do proxy e salvá-lo em um arquivo

[Imperdível para Xiaobai] Exemplo de síntese de imagem Python usando a biblioteca PIL para realizar a síntese de várias imagens por fileiras e colunas

[Xiaobai deve ver] O combate real do rastreador Python baixa imagens de deusas em lotes e as salva localmente

[Xiaobai deve ver] Análise detalhada do gerador de nuvem de palavras Python e implementação de código

[Xiaobai deve ver] Python rastreia um exemplo de dados do jogador da NBA

[Imperdível para Xiaobai] Exemplo de código para rastrear e salvar áudio do Himalaia usando Python

[Imperdível para Xiaobai] Realização técnica do uso do Python para baixar imagens de skins do League of Legends em lotes

[Xiaobai deve ver] Processamento e visualização de dados do rastreador Python

[Imperdível para Xiaobai] Programa de rastreador Python para obter facilmente imagens de pele de herói do Rei da Glória

[Imperdível para Xiaobai] Use Python para gerar uma lista personalizada de documentos do Word

[Xiaobai deve ver] Combate rastreador Python: obtenha fotos do site Onmyoji e salve-as automaticamente

Xiaobai série imperdível de sistema de gerenciamento de biblioteca - código de amostra para funções de login e registro

100 casos de combate real de Xiaobai: um programa de julgamento vencedor da loteria Shuangseqiu completo e simples, adequado para os primeiros passos de Xiaobai

Processamento e visualização de dados geoespaciais usando geopandas e shapely (.shp)

Use o selênio para rastrear os dados da lista de filmes Maoyan

Algoritmo de aprimoramento de imagem Retinex Princípio e implementação Explicação detalhada

Guia de primeiros passos para rastreadores (8): Escreva programas rastreadores de dados meteorológicos para análise visual

Guia introdutório para rastreadores (7): Usando Selenium e BeautifulSoup para rastrear Douban Movie Top250 Explicação de exemplo [Reptile Xiaobai deve assistir]

Guia de primeiros passos para rastreadores (6): anti-crawlers e habilidades avançadas: proxy IP, disfarce de agente do usuário, verificação de login de bypass de cookie e ferramentas de identificação de código de verificação

Guia introdutório para rastreadores (5): rastreadores distribuídos e controle de simultaneidade [métodos de implementação para melhorar a eficiência do rastreamento e controle de racionalidade de solicitação]

Introdução aos rastreadores (4): a melhor maneira de rastrear páginas da Web dinâmicas usando Selenium e API

Guia de primeiros passos para crawlers (3): solicitações de rede Python e estratégias comuns anticrawler

Introdução aos rastreadores (2): como usar expressões regulares para extração e processamento de dados

Guia de primeiros passos para répteis (1): aprenda o básico e as habilidades dos répteis

Aplicação do modelo de aprendizado profundo no reconhecimento de imagem: prática de conjunto de dados CIFAR-10 e análise de precisão

Noções básicas de programação orientada a objetos Python e código de amostra

Guia de operação do banco de dados MySQL: aprenda a usar o Python para adicionar, excluir, modificar e consultar operações

Guia de operação de arquivo Python: codificação, leitura, gravação e tratamento de exceções

Use Python e Selenium para automatizar o rastreamento.

Tutorial Python multi-thread e multi-processo: análise abrangente, casos de código e habilidades de otimização

Selenium Automation Toolset - Guia Completo e Tutoriais

Noções básicas do rastreador da web Python avançado para tutorial de combate real

Tutorial introdutório do Python: domine o conhecimento básico de loop for, loop while, operação de string, leitura e gravação de arquivos e tratamento de exceções

Tutorial de processamento e análise de dados do Pandas: do básico ao combate real

Explicação detalhada dos tipos de dados comumente usados ​​e operações relacionadas em Python

[Mais recente em 2023] Explicação detalhada dos seis principais esquemas para melhorar o índice do modelo de classificação

Noções básicas de programação Python introdutória e habilidades avançadas, desenvolvimento web, análise de dados e aprendizado de máquina e inteligência artificial

Resultados de previsão de gráfico com 4 métodos de regressão: regressão vetorial, regressão de floresta aleatória, regressão linear, regressão K-vizinhos mais próximos

Acho que você gosta

Origin blog.csdn.net/qq_33681891/article/details/132355645
Recomendado
Clasificación