Compartilhamento de tecnologia

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 14 implementações de classes e objetos em Python - Você consegue dizer a diferença entre métodos estáticos e métodos de classe de uma classe?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 14 implementações de classes e objetos em Python - Você consegue dizer a diferença entre métodos estáticos e métodos de classe de uma classe?

Resumo:

Este artigo apresenta principalmente métodos de classe e métodos estáticos em classes e objetos em Python, bem como as definições, características, cenários de aplicação e métodos de uso de métodos de classe e métodos estáticos, e compara os dois.

Links originais:

Blog do FreakStudio

Recomendado no passado:

Possivelmente o tutorial de programação orientada a objetos mais adequado para começar na Internet: Implementação Python - uma leitura obrigatória para entusiastas de sistemas embarcados!

O tutorial de programação orientada a objetos mais adequado para começar em toda a Internet: 00 Introdução aos métodos de design orientado a objetos

O tutorial de programação orientada a objetos mais adequado na Internet para começar: 01 Conceitos básicos de programação orientada a objetos

O tutorial de programação orientada a objetos mais adequado na Internet para começar: 02 Implementação de classes e objetos em Python - usando Python para criar classes

O tutorial de programação orientada a objetos mais adequado para começar na Internet: 03 Implementação de classes e objetos em Python - adicionando atributos a classes personalizadas

O tutorial de programação orientada a objetos mais adequado para começar na Internet: 04 Implementação de classes e objetos em Python - adicionando métodos a classes personalizadas

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 05 Implementação de classes e objetos em Python - tags de código PyCharm

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 06 Implementação de classes e objetos em Python - encapsulamento de dados de classes personalizadas

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 07 Implementação de classes e objetos em Python - anotações de tipo

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 08 Implementação de classes e objetos em Python - @property decorator

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 09 Implementação de classes e objetos em Python – o relacionamento entre classes

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: 10 implementações de classes e objetos em Python - herança de classe e princípio de substituição de Liskov

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: implementação em Python de 11 classes e objetos - subclasses chamam o método da classe pai

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: Implementação Python de 12 classes e objetos - Python usa o módulo logging para gerar logs de execução do programa

O tutorial de programação orientada a objetos mais adequado para iniciantes na Internet: Implementação Python de 13 classes e objetos - Instalação e uso do artefato visual de leitura de código Sourcetrail

Conteúdo mais interessante para assistir:

Breve análise do sistema de depuração CM3

Após meio mês de trabalho, um resumo da pilha de tecnologia embarcada é lançado

Segredos vencedores de competições de artes marciais: 05. Como dividir o trabalho e o conteúdo de estudo da equipe nacional de premiação em competições de informática

Segredos de artes marciais para vencer competições: 04 Um guia rápido e de leitura obrigatória para desenvolvimento integrado em competições eletrônicas

Segredos das artes marciais para vencer competições: 03 Boas escolhas criativas – o pré-requisito mais necessário para ganhar o prêmio nacional

Segredos de artes marciais vencedores de competições: 02 Segredos do Prêmio Nacional - Um processo rápido de início para competições de informática para estudantes universitários, uma leitura obrigatória para iniciantes

Segredos das artes marciais para vencer competições: 01 Como você vê o fenômeno do “rolamento”, dos “eventos ancestrais” e da “busca de conexões” nas competições universitárias contemporâneas?

Segredos de artes marciais para vencer competições: 00 Competição de disciplinas - um tópico que os estudantes universitários de engenharia não podem evitar.

Os "segredos das artes marciais" das competições eletrônicas e de informática - Competição Eletrônica Competição de Design de Optoeletrônica Competição de Design de Computador Competição de Chip Embarcado e Design de Sistema, tudo que você precisa está aqui!

Documentação e aquisição de código:

Você pode visitar o seguinte link para baixar o documento:

https://github.com/leezisheng/Doc

imagemmm

Este documento apresenta principalmente como usar Python para programação orientada a objetos e exige que os leitores tenham um conhecimento básico da sintaxe Python e do desenvolvimento de microcontroladores. Comparado com outros blogs ou livros que explicam a programação orientada a objetos Python, este documento é mais detalhado e se concentra em aplicativos de computador host incorporados. Ele usa envio e recebimento de dados de porta serial comum, processamento de dados, desenho de gráfico dinâmico, etc. e computador inferior como exemplos de aplicação e use o software de código Sourcetrail para ler visualmente o código para facilitar a compreensão dos leitores.

Os links de código de exemplo relevantes são os seguintes:https://github.com/leezisheng/Python-OOP-Demo

texto

método estático

Tomando a classe SensorClass como exemplo, os chamados métodos InitSensor, StartSensor, StopSensor, etc.Métodos de objeto, ou seja, todos esses métodos são mensagens enviadas ao objeto e todos chamam as propriedades do objeto.Na verdade, os métodos que escrevemos na classe não precisam ser métodos de objeto. Existem alguns métodos na classe que não precisam chamar atributos de objeto. Por exemplo, no método InitSensor, podemos precisar determinar se o atual. A porta COM existe obviamente, este método é diferente dos objetos Sensor são irrelevantes.

Para outro exemplo, definimos uma classe "Triângulo", construímos um triângulo passando três comprimentos laterais e fornecemos métodos para calcular o perímetro e a área. No entanto, os três comprimentos laterais passados ​​podem não ser capazes de construir um objeto triângulo, portanto. podemos primeiro escrever um método para verificar se três comprimentos de lados podem formar um triângulo. Este método obviamente não é um método de objeto, porque o objeto triângulo não foi criado quando este método é chamado (porque não se sabe se os três lados podem). formar um triângulo), então este método é da classe Triangle, mas não um objeto triângulo.podemos usarmétodo estáticoPara resolver esse tipo de problema, o código é o seguinte.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Os métodos estáticos são na verdade as funções que aprendemos. A única diferença entre eles e as funções é que os métodos estáticos são definidos no espaço da classe (namespace da classe), enquanto as funções são definidas no espaço onde o programa está localizado (namespace global). . Os métodos estáticos não possuem parâmetros especiais, como self e cls, portanto, o interpretador Python não fará nenhuma ligação de classe ou objeto para os parâmetros que ele contém. Por causa disso, nenhum atributo e método de classe pode ser chamado em métodos estáticos de uma classe. Aqui definimos o método estático IsPort para determinar se o número de ID do sensor está correto. O método estático precisa ser modificado com @staticmethod. Para chamar um método estático, você pode usar um nome de classe ou um objeto de classe, por exemplo:

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

imagemmm

método de classe

Semelhante aos métodos estáticos, Python também pode definir métodos de classe na classe. O primeiro parâmetro do método de classe é convencionalmente denominado cls, que representa o objeto de informação relacionado à classe atual (a própria classe também é um objeto, e em alguns casos). lugares Chamado de objeto de metadados da classe), através deste parâmetro podemos obter informações relacionadas à classe e criar objetos da classe Python irá vincular automaticamente a própria classe ao parâmetro cls (observe que ele não está vinculado ao objeto de classe. ). Em outras palavras, quando chamamos o método da classe, não precisamos passar parâmetros explicitamente para o parâmetro cls.

Os métodos de classe precisam ser modificados usando o modificador @classmethod. Definimos o método de classe MasterInfo em MasterClass.

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

imagemmm

Insira a descrição da imagem aqui