Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Quando scrivi classi in Python, potresti spesso incontrare il termine 'self.'È un concetto cruciale che i principianti devono comprendere mentre si immergono più a fondo nelle funzionalità orientate agli oggetti nel linguaggio di programmazione Python.

Il selfparametro si riferisce all'istanza corrente di una classe. Puoi usarlo per accedere agli attributi e ai metodi che appartengono a quella classe.

In questo tutorial Python, esploreremo come la selfvariabile gioca un ruolo fondamentale nelle classi Python. Ti mostreremo anche come mantenere la chiarezza del codice, la modularità e la riutilizzabilità attraverso l'uso di self.

Sommario

Comprendere il sé in Python

Python è un linguaggio di programmazione orientato agli oggetti (OOP) che si basa fortemente su classi e oggetti. Quindi, prima di immergerci nel selfparametro, dobbiamo prima capire cos'è la programmazione orientata agli oggetti.

Programmazione orientata agli oggetti in Python

Cos'è il sé in Python: esempi del mondo realeScrittura con il gesso – OOP, programmazione orientata agli oggetti "data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Cos'è il Sé in Python." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" size="(larghezza massima: 709px) 100vw, 709px">

La programmazione orientata agli oggetti aiuta i programmatori a modellare concetti e relazioni del mondo reale attraverso l'uso di classi e oggetti. Ciò si traduce in un codice più strutturato, riutilizzabile e scalabile.

Pensa a una classe come a un modello per la creazione di oggetti con proprietà e metodi predefiniti. Inoltre, un oggetto è un'istanza di una classe che memorizza i propri valori per gli attributi e ha accesso alle funzioni di classe.

Questi due concetti sono un elemento fondamentale in molte applicazioni Python . Puoi vedere sia le classi che gli oggetti al lavoro in questo video su Come creare facilmente dati con la libreria Python Faker.

Il ruolo di Python Self

Self è un riferimento all'istanza della classe in Python. Consente di accedere e modificare gli attributi ei metodi di una classe all'interno del proprio ambito.

Ecco alcuni punti chiave sull'uso di self in Python:

  • Selfnon è una parola chiave riservata nella sintassi di Python . È possibile utilizzare altri nomi per identificare le istanze di classe, ma selfè la convenzione più utilizzata e accettata dai programmatori Python.
  • Selfviene utilizzato come primo parametro nei metodi di istanza per fare riferimento all'istanza corrente della classe.
  • Puoi usare selfper distinguere tra attributi di istanza e variabili locali, rendendo il tuo codice più leggibile e meno difettoso.
  • Quando si chiama un metodo di istanza, Python passa automaticamente l'istanza come primo parametro.
  • È necessario dichiarare il selfparametro nel __init__() costruttore e in tutti gli altri successivi costruttori di funzioni nella classe. In caso contrario, il tuo programma lancerà un file typeerror.

    Puoi vedere un esempio di questo errore qui sotto:

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

Nota: puoi aggirare l'uso del self parametro nelle funzioni utilizzando la funzionalità del metodo statico fornita da Python 3. Entreremo più in dettaglio su questo in una sezione successiva.

Lavorare con sé

Cos'è il sé in Python: esempi del mondo reale

Imparare a usare self è molto importante per costruire classi in Python. In questa sezione imparerai come utilizzare self in diversi scenari quando lavori con classi e oggetti.

Inizializzazione di oggetti con '__init__()'

Cos'è il sé in Python: esempi del mondo reale

Quando si crea una nuova istanza di una classe, il __init__() metodo viene chiamato per inizializzare gli attributi dell'oggetto. Il __init__() metodo è il costruttore della classe e accetta il self parametro come primo argomento.

Il selfparametro viene utilizzato all'interno di questo metodo per associare gli attributi dell'istanza con gli argomenti dati.

Ecco un esempio:

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

In questo esempio, il metodo accetta , e come parametri durante l'inizializzazione dell'oggetto. Il parametro fa riferimento all'istanza della classe, consentendo di impostare gli attributi e per l'oggetto specifico che si sta creando. init selfnameageself nameage

Usare il Sé nei Metodi

Quando si definiscono i metodi di istanza in una classe, è necessario includere self come primo parametro. Ciò consente di accedere agli attributi dell'istanza e ad altri metodi all'interno della classe.

Espandiamo l'esempio precedente:

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

In questo esempio, il introduce()metodo include selfcome primo parametro. Ciò consente di accedere agli attributi del nome e dell'età dell'oggetto e di creare un'introduzione personalizzata.

Quando si chiama il metodo nel codice, non è necessario passare il self parametro in modo esplicito. Python se ne occupa automaticamente.

Seguendo queste linee guida e comprendendo lo scopo di selfin Python , i principianti possono lavorare efficacemente con classi e oggetti. Questo consente loro di creare un codice ben strutturato facile da leggere e mantenere.

Casi di uso personale comuni

Cos'è il sé in Python: esempi del mondo reale

Ci sono molti modi in cui puoi usare la parola chiave nel tuo codice Python. Comprendendo questi casi d'uso, sarai in grado di utilizzarli efficacemente nei tuoi programmi. self self

Diamo un'occhiata ad alcuni di loro:

Accesso agli attributi di classe

Un uso principale di selfè accedere agli attributi dell'istanza all'interno di una classe. Gli attributi di istanza sono specifici di un oggetto creato dalla classe e memorizzano i dati dell'oggetto.

L'utilizzo selfconsente di manipolare o accedere a questi attributi all'interno dei metodi di classe. Diamo un'occhiata a un esempio:

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

In questo esempio, abbiamo usato self per accedere all'attributo name di un oggetto Dog all'interno del display_name metodo.

Chiamata di metodi di classe

Un altro caso d'uso comune di selfè chiamare altri metodi di classe dall'interno di un metodo di istanza. Ciò consente di riutilizzare il codice, ridurre la complessità e migliorare la leggibilità.

È essenziale da usare selfquando si fa riferimento ad altri metodi, poiché garantisce che venga chiamato il metodo corretto per l'istanza specifica. Considera il seguente esempio:

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

Nell'esempio sopra, usiamo selfper chiamare il show_speciesmetodo dall'interno del show_infometodo. Questo ci consente di visualizzare la specie e il colore dell'uccello in un unico richiamo.

Infine, ricorda di utilizzare selfquando accedi agli attributi dell'istanza e chiami i metodi della classe. Una volta compresi questi casi d'uso, sarai in grado di scrivere codice Python più efficiente e organizzato.

Le migliori pratiche personali

Cos'è il sé in Python: esempi del mondo reale

Quando lavori con self,ci sono alcune convenzioni che devi seguire per evitare problemi e bug nel tuo codice. Ecco qui alcuni di loro.

Dove usare Self

Quando si definiscono i metodi di istanza, utilizzare sempre il selfparametro come primo parametro. Ciò consente di accedere e modificare gli attributi di istanza dell'oggetto e chiamare altri metodi di istanza all'interno della classe.

È importante da usare selfquando si lavora con istanze di oggetti in Python. Il suo utilizzo garantisce un comportamento coerente e consente un corretto incapsulamento degli oggetti.

Si consideri ad esempio la seguente classe:

class MyClass: def __init__(self, my_var): self.my_var = my_var

Qui, il parametro self viene utilizzato nel __init__ metodo per inizializzare l' my_var attributo dell'istanza dell'oggetto. In questo modo, diventa un attributo specifico dell'istanza. my_var

Di conseguenza, è possibile accedervi e modificarlo utilizzando l'autoriferimento in altri metodi della classe.

Convenzioni di denominazione per il sé

Sebbene selfsia il nome convenzionale utilizzato per l'istanza in Python, puoi tecnicamente utilizzare qualsiasi nome ti piaccia. Tuttavia, si consiglia vivamente di attenersi all'uso di self per chiarezza e coerenza con la più ampia comunità di Python.

L'uso di un nome diverso potrebbe causare confusione a coloro che leggono e lavorano con il tuo codice, specialmente se sono abituati alle convenzioni di denominazione standard nelle librerie Python.

Dove non usare Self

Sappiamo già che il selfparametro fornisce l'accesso all'istanza dell'oggetto. Tuttavia, in alcuni casi, alcune funzioni nella classe potrebbero non richiedere l'accesso all'istanza dell'oggetto.

In questo scenario, il parametro self non è necessario. Quindi, Python fornisce una funzionalità di metodo statico per bypassare il parametro self:

Ecco un esempio:

class Car: @staticmethod def print_car(): print('Vroom Vroom')

Nell'esempio precedente, il @staticmethoddecoratore di funzioni esegue l'override del selfparametro requisito nel metodo. In questo modo, la funzione verrà comunque eseguita anche se non viene passata alcuna istanza di oggetto.

Conclusione

Cos'è il sé in Python: esempi del mondo reale

In sintesi, il parametro self in Python si riferisce all'istanza di una classe e consente di accedere ai suoi attributi e metodi. Come sviluppatore Python, è importante comprendere lo scopo di self e il suo utilizzo in classi e oggetti.

Usando self in modo coerente nel tuo codice, promuovi la leggibilità e la manutenibilità, il che migliora la qualità complessiva del tuo lavoro.

Inoltre, ricorda che mentre potresti vedere il termine "self"usato frequentemente in Python, non è una parola chiave Python riservata. Ciò differisce dai linguaggi di programmazione come Javascript e Java , dove "this" è una parola chiave riservata.

Puoi nominare il primo parametro in un metodo di classe come preferisci; " self" è solo la convenzione preferita.

Self è una parola chiave in Python? 

C'è una domanda che aleggia sempre tra i programmatori Python. Self è effettivamente una parola chiave in Python? 

A differenza di altri linguaggi di programmazione come C++, dove self è considerata una parola chiave, in Python è una convenzione che i programmatori tendono a seguire. È fondamentalmente un parametro nella definizione di un metodo. Tuttavia, puoi utilizzare qualsiasi altro nome al posto di te stesso, come un altro me o qualsiasi altra cosa per il primo parametro di un metodo. Un altro motivo per cui viene suggerito dalla maggior parte delle persone è che migliora la leggibilità del codice. 

Vediamo un esempio per capirlo: 

class miaClasse:   def show(another):   print("un altro viene utilizzato al posto di sé")  

Se confronti questo codice con il codice per l'autocostruttore della classe Python, noterai che qui abbiamo usato il nome un altro in luogo di se stesso. Ora creiamo un oggetto di questa classe e vediamo l'output: 

oggetto = miaClasse()   oggetto.mostra()

Puoi vedere che il programma funziona anche se usiamo un altro nome al posto della variabile self. Funziona esattamente allo stesso modo della variabile self. 


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere