Panoramica dell'incapsulamento in Python

L'incapsulamento è uno dei quattro concetti fondamentali della programmazione orientata agli oggetti. Quando è necessario raggruppare i dati e le successive subroutine che collaborano e funzionano in un unico posto insieme alla necessità di nascondere all'utente i dettagli complessi, utilizziamo l'incapsulamento per comprendere "Incapsulamento in Python", dobbiamo approfondire e comprendere come l'incapsulamento entra in scena in un linguaggio di programmazione. L'incapsulamento aiuta a limitare l'accesso a metodi e variabili. Prevenire qualsiasi modifica accidentale dei dati, e ciò si ottiene utilizzando i metodi Variabile di istanza non pubblica e Variabile di istanza non pubblica. La classe incapsula i metodi e le variabili.

Mangling dei nomi in Python

Python implica una restrizione sull'accesso ai dati. Non esistono modificatori di accesso espliciti, ma l'accesso può essere controllato tramite Gestione nomi in Python. Per impostazione predefinita, tutti i metodi e le variabili sono pubblici in Python. Quindi, se un identificatore ha due caratteri di sottolineatura principali, diventa un'istanza non pubblica in Python. Specificheremo qui variabili e metodi di istanze non pubbliche per comprendere meglio l'incapsulamento. L'ambito del metodo di istanza non pubblica è solo all'interno della sua stessa classe e inizia con un carattere di sottolineatura o due caratteri di sottolineatura, vale a dire un singolo "_" o "__" doppio prima di una variabile o di un metodo. L'ambito di una variabile di istanza non pubblica è anche nella sua classe o dal metodo in cui è definita e inizia anche con due trattini bassi. Se ci capita di perdere i due caratteri di sottolineatura, quel metodo viene considerato come un metodo pubblico. Prima di comprendere l'incapsulamento in Python dobbiamo capire come funzionano le variabili e i metodi di istanza pubblici e non pubblici.

Variabili non di istanza pubblica

In Python, non esiste un termine "privato" in quanto nessun attributo è realmente privato in Python (discuteremo l'alternativa di base più avanti nell'articolo). Invece, li chiamiamo variabile non di istanza pubblica. Ecco come faremmo riferimento alle variabili private e ai metodi privati ​​con la presente.

Ecco un piccolo frammento del codice in Python per variabili di istanza non pubbliche:

Usiamo la parola chiave self perché stiamo accedendo alla variabile di classe. L'output è:

Per ottenere una conferma nell'ambito della variabile di istanza non pubblica, aggiungiamo la stampa (abc .__ a) al codice:

E l'output restituito è:

Quindi, vediamo che non possiamo usare variabili di istanza non pubbliche al di fuori della classe.

Metodi di istanza non pubblica

Una funzione di istanza non pubblica non può essere chiamata sull'oggetto direttamente ma solo all'interno della classe.

In questo frammento di codice, abbiamo due metodi, un'istanza non pubblica e un altro metodo pubblico. Il metodo pubblico viene chiamato facilmente creando un oggetto della classe abc e quindi il suo output viene stampato.

Quando si tenta un approccio simile per il metodo di istanza non pubblica, si verifica il seguente errore:

Questo programma produrrà il seguente output:

Pertanto non è possibile accedere a un metodo di istanza non pubblica mediante la creazione di oggetti. Per accedere al metodo di istanza non pubblica possiamo chiamare il metodo __show1 () dal metodo show2 () della stessa classe. Ecco come possiamo visualizzare il metodo di istanza non pubblica dal metodo pubblico della stessa classe.

Produzione:

Pertanto, il metodo di istanza non pubblica non può essere chiamato al di fuori della sua classe.

Il modo indiretto per accedere alla variabile di istanza non pubblica

Per motivi legittimi non è possibile accedere alle variabili di istanza non pubbliche oltre la classe, ma esiste un modo indiretto per modificare il valore della variabile di istanza non pubblica e accedere utilizzando gli oggetti. Daremo un'occhiata allo snippet di codice seguente:

Produzione:

Nel programma sopra abbiamo metodi pubblici getNumber (self, num) e displayNumber () e una variabile di istanza non pubblica. Quando si chiama il primo metodo, si assegna il valore alla variabile di istanza non pubblica e questo viene chiamato nel metodo displayNumber ().

Il metodo setter viene utilizzato per impostare il valore della variabile di istanza non pubblica. Ciò è utile negli scenari in cui è possibile modificare il valore di una variabile di istanza non pubblica dopo la creazione di oggetti per una variabile specifica.

Vantaggi dell'incapsulamento in Python

L'incapsulamento aiuta a stabilire un migliore flusso di dati e anche la protezione dei dati. Il concetto di incapsulamento rende il codice autosufficiente. L'incapsulamento fornisce un grande aiuto a livello di implementazione poiché si concentra principalmente sulla domanda "come" lasciando indietro il complesso "quando / dove" e le sue complessità. Nascondere i dati in un'unità semplifica l'incapsulamento e protegge anche i dati.

Perché abbiamo bisogno dell'incapsulamento in Python?

Di seguito sono elencati diversi motivi per cui gli sviluppatori ritengono utile il concetto di incapsulamento e perché i concetti orientati agli oggetti governano la maggior parte dei linguaggi di programmazione in esecuzione nello scenario attuale.

  • C'è bisogno di un'interazione ben definita in ogni applicazione, gli incapsulamenti aiutano a raggiungerlo.
  • Il concetto di programmazione di orientamento degli oggetti in python si concentra sulla creazione di codice riutilizzabile. Questo è anche abbreviato come DRY (Don't Repeat Yourself).
  • La manutenzione dell'applicazione è più semplice e la sicurezza è garantita.
  • Chiarezza sulla procedura di codifica in quanto gli sviluppatori devono preoccuparsi dell'obiettivo della classe e le complessità sono trattate sistematicamente.
  • La corretta organizzazione dei codici aiuta con la flessibilità del codice e aiuta anche a test unitari.
  • Gli utenti trovano facile usare il sistema in quanto sono nascosti dal complesso design coinvolto nel backend.
  • Avere tutti i dati simili in un posto e incapsulati aumenta la coesione all'interno di un modulo.
  • Migliora la leggibilità dei codici e le modifiche in una parte del codice non disturbano altre parti del codice.
  • L'incapsulamento impedisce l'accesso accidentale alla parte del codice, ma non intenzionalmente poiché gli oggetti contengono dati critici per le applicazioni e devono essere modificati in qualsiasi punto del codice.

Conclusione - Incapsulamento in Python

In termini più semplici Incapsulamento in Python significa che la rappresentazione interna di un oggetto è generalmente nascosta dalla vista al di fuori della definizione dell'oggetto. Questo aiuta lo sviluppatore a sviluppare un'esperienza user-friendly per l'utente finale e c'è una protezione da una violazione della sicurezza quando i codici sono resi sicuri.

Articoli consigliati

Questa è una guida all'incapsulamento in Python. Qui discutiamo le esigenze di incapsulamento in Python insieme alle sue variabili di istanza non pubbliche e ai metodi di istanza. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Che cos'è Python
  2. Python è orientato agli oggetti
  3. Pattern in Python
  4. Come usare l'incapsulamento in C ++?
  5. Incapsulamento in Java | Esempi
  6. Incapsulamento in C (Funzionamento, Esempi)
  7. Introduzione all'incapsulamento in JavaScript

Categoria: