Condivisione della tecnologia

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 14 implementazioni Python di classi e oggetti - Sai distinguere tra metodi statici e metodi di classe di una classe?

2024-07-12

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

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 14 implementazioni Python di classi e oggetti - Sai distinguere tra metodi statici e metodi di classe di una classe?

Riepilogo:

Questo articolo introduce principalmente i metodi di classe e i metodi statici nelle classi e negli oggetti in Python, nonché le definizioni, le caratteristiche, gli scenari applicativi e i metodi di utilizzo dei metodi di classe e dei metodi statici e li confronta.

Collegamento originale:

Il blog di FreakStudio

Consigliato in passato:

Forse il tutorial di programmazione orientato agli oggetti più adatto per iniziare su Internet: Implementazione Python: una lettura obbligata per gli appassionati di embedded!

Il tutorial di programmazione orientato agli oggetti più adatto per iniziare su tutta Internet: 00 Introduzione ai metodi di progettazione orientata agli oggetti

Il tutorial di programmazione orientato agli oggetti più adatto su Internet per iniziare: 01 Concetti di base della programmazione orientata agli oggetti

Il tutorial di programmazione orientato agli oggetti più adatto su Internet per iniziare: 02 Implementazione Python di classi e oggetti - utilizzo di Python per creare classi

Il tutorial di programmazione orientato agli oggetti più adatto per iniziare su Internet: 03 Implementazione Python di classi e oggetti - aggiunta di attributi a classi personalizzate

Il tutorial di programmazione orientato agli oggetti più adatto per iniziare su Internet: 04 Implementazione Python di classi e oggetti - aggiunta di metodi a classi personalizzate

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 05 Implementazione Python di classi e oggetti - Tag codice PyCharm

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 06 Implementazione Python di classi e oggetti - incapsulamento dei dati di classi personalizzate

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 07 Implementazione Python di classi e oggetti - annotazioni di tipo

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 08 Implementazione Python di classi e oggetti-@property decorator

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 09 Implementazione Python di classi e oggetti: la relazione tra le classi

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: 10 implementazioni Python di classi e oggetti - ereditarietà delle classi e principio di sostituzione di Liskov

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: implementazione Python di 11 classi e oggetti - la sottoclasse chiama il metodo della classe genitore

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: implementazione Python di 12 classi e oggetti - Python utilizza il modulo logging per generare i log di esecuzione del programma

Il tutorial di programmazione orientato agli oggetti più adatto per principianti su Internet: Implementazione Python di 13 classi e oggetti - Installazione e utilizzo dell'artefatto di lettura del codice visivo Sourcetrail

Contenuti più interessanti da guardare:

Breve analisi del sistema di debug CM3

Dopo mezzo mese di lavoro, viene rilasciato un riepilogo dello stack tecnologico incorporato

Segreti delle arti marziali vincenti: 05. Come dividere il lavoro e il contenuto di studio della squadra nazionale del premio nelle competizioni di computer elettronici

Segreti delle arti marziali vincenti: 04 Una guida rapida e imperdibile per lo sviluppo integrato nelle competizioni elettroniche

Segreti delle arti marziali vincenti: 03 Buone scelte creative: il prerequisito più necessario per vincere il premio nazionale

Segreti delle arti marziali vincenti: 02 Segreti del National Award - Un rapido processo di avvio per le competizioni informatiche degli studenti universitari, una lettura obbligata per i principianti

Segreti delle arti marziali vincenti: 01 Come vedi il fenomeno del "rotolamento", degli "eventi ancestrali" e della "ricerca di connessioni" nelle competizioni universitarie contemporanee?

Segreti delle arti marziali vincenti: 00 Concorso di materie: un argomento che gli studenti universitari di ingegneria non possono evitare.

I "segreti delle arti marziali" delle competizioni elettroniche e informatiche - Gara Elettronica Gara di Design Optoelettronica Gara di Design Computer Concorrenza di Design di Chip e Sistemi Embedded, tutto ciò di cui hai bisogno è qui!

Documentazione e acquisizione codice:

È possibile visitare il seguente collegamento per scaricare il documento:

Italiano: https://github.com/leezisheng/Doc

Immagine

Questo documento introduce principalmente come utilizzare Python per la programmazione orientata agli oggetti e richiede che i lettori abbiano una conoscenza di base della sintassi Python e dello sviluppo del microcontrollore. Rispetto ad altri blog o libri che spiegano la programmazione orientata agli oggetti Python, questo documento è più dettagliato e si concentra sulle applicazioni del computer host incorporato. Utilizza l'invio e la ricezione di dati sulla porta seriale comune, l'elaborazione dei dati, il disegno di grafici dinamici, ecc. del computer superiore e computer inferiore come esempi di applicazione e utilizzare il software di codice Sourcetrail per leggere visivamente il codice per facilitare la comprensione dei lettori.

I collegamenti al codice di esempio pertinente sono i seguenti:Italiano: https://github.com/leezisheng/Python-OOP-Demo

testo

metodo statico

Prendendo come esempio la classe SensorClass, i cosiddetti metodi InitSensor, StartSensor, StopSensor, ecc. definiti nella classe sonoMetodi degli oggetti, vale a dire, questi metodi sono tutti messaggi inviati all'oggetto e tutti chiamano le proprietà dell'oggetto.In effetti, i metodi che scriviamo nella classe non devono essere metodi dell'oggetto. Ci sono alcuni metodi nella classe che non necessitano di chiamare gli attributi dell'oggetto. Ad esempio, nel metodo InitSensor, potremmo aver bisogno di determinare se il metodo current La porta COM esiste Ovviamente, questo metodo è diverso da Gli oggetti sensore sono irrilevanti.

Per un altro esempio, definiamo una classe "Triangolo", costruiamo un triangolo passando in tre lunghezze di lato e forniamo metodi per calcolare perimetro e area. Tuttavia, le tre lunghezze di lato potrebbero non essere in grado di costruire un oggetto triangolo possiamo prima scrivere un metodo per verificare se tre lunghezze dei lati possono formare un triangolo. Questo metodo ovviamente non è un metodo dell'oggetto, perché l'oggetto triangolo non è stato creato quando viene chiamato questo metodo (perché non è noto se i tre lati possano farlo). formare un triangolo), quindi questo metodo è una classe Triangle ma non un oggetto triangolo.possiamo usaremetodo staticoPer risolvere questo tipo di problema, il codice è il seguente.

@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

I metodi statici sono in realtà le funzioni che abbiamo imparato. L'unica differenza tra loro e le funzioni è che i metodi statici sono definiti nello spazio della classe (spazio dei nomi della classe), mentre le funzioni sono definite nello spazio in cui si trova il programma (spazio dei nomi globale). . I metodi statici non hanno parametri speciali come self e cls, quindi l'interprete Python non eseguirà alcuna associazione di classi o oggetti per i parametri in esso contenuti. Per questo motivo, nessun attributo di classe e nessun metodo di classe può essere chiamato nei metodi statici di una classe. Qui definiamo il metodo statico IsPort per determinare se il numero ID del sensore è corretto. Il metodo statico deve essere modificato con @staticmethod. Per chiamare un metodo statico, puoi utilizzare il nome di una classe o un oggetto di classe, ad esempio:

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

Immagine

metodo di classe

Similmente ai metodi statici, Python può anche definire metodi di classe nella classe. Il primo parametro del metodo della classe è convenzionalmente chiamato cls, che rappresenta l'oggetto delle informazioni relative alla classe corrente (anche la classe stessa è un oggetto, e in alcuni. place Chiamato oggetto metadati della classe), tramite questo parametro possiamo ottenere informazioni relative alla classe e creare oggetti della classe Python legherà automaticamente la classe stessa al parametro cls (nota che non è vincolato all'oggetto classe ). In altre parole, quando chiamiamo il metodo della classe, non è necessario passare esplicitamente i parametri per il parametro cls.

I metodi della classe devono essere modificati utilizzando il modificatore @classmethod. Definiamo il metodo della classe MasterInfo in MasterClass. Il codice di esempio è il seguente:

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

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

Immagine

Inserisci qui la descrizione dell'immagine