User Tools

Site Tools


appunti3s:creare_classi_e_funzioni_in_python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
appunti3s:creare_classi_e_funzioni_in_python [2020/07/22 11:42] profproappunti3s:creare_classi_e_funzioni_in_python [2020/07/29 18:42] (current) – [Parametri opzionali] profpro
Line 53: Line 53:
 ===== Namespace ===== ===== Namespace =====
    
-TO DO: Come si divide il codice in più file.py?+Come si divide il codice in più file.py? Ogni file .py può essere importato (import) [[appunti3s:modulo python]] 
 + 
 +Questi moduli python sono salvati nella sottocartella "lib"
  
 La keyword //global// si usa per definire oggetti globali (meglio usarla solo per le funzioni) La keyword //global// si usa per definire oggetti globali (meglio usarla solo per le funzioni)
Line 78: Line 80:
 Questa classe servirà al futuro **programmatore** per creare, ogni volta che serve, un oggetto auto.  Questa classe servirà al futuro **programmatore** per creare, ogni volta che serve, un oggetto auto. 
 Il programmatore, per creare il primo oggetto può scrivere semplicemente: Il programmatore, per creare il primo oggetto può scrivere semplicemente:
-<code>auto1 = Auto()</code>+<code>auto1 = Auto() 
 + 
 +auto1.__class__  #stampa la classe di appartenenza di oggetto auto1 
 + 
 +auto1.__doc__ #stampa la documentazione  </code> 
 Ora nella memoria del computer c'è una auto, ma è strana perché non si conosce nulla di quest'auto, come la targa, il prezzo, ecc. Ora nella memoria del computer c'è una auto, ma è strana perché non si conosce nulla di quest'auto, come la targa, il prezzo, ecc.
 Come può il futuro programmatore memorizzare la targa, il prezzo e i restanti attributi di questa auto? Li può specificare tra parentesi in questo modo: Come può il futuro programmatore memorizzare la targa, il prezzo e i restanti attributi di questa auto? Li può specificare tra parentesi in questo modo:
Line 93: Line 100:
 </file> </file>
  
-%%__init__()%% è un //attributo metodo// (una funzione) che descrive gli //attributi dato// e la loro inizializzazione. È uno degli attributi metodo più importanti che lo sviluppatore deve preparare. Il programmatore lo usa (senza saperlo) ogni volta che crea un oggetto. +  - Riassumendo: %%__init__()%% è un //attributo metodo// (una funzione) che descrive gli //attributi dato// e la loro inizializzazione. È uno degli attributi metodo più importanti che lo sviluppatore deve preparare. Il programmatore lo usa (senza saperlo) ogni volta che crea un oggetto. Non è necessario invocare esplicitamente %%__init__%%. Init non deve e non può restituire nulla.
 Notare che mentre la chiamata del metodo contiene 3 parametri, nella funzione %%__init__()%% ce ne sono 4... Notare che mentre la chiamata del metodo contiene 3 parametri, nella funzione %%__init__()%% ce ne sono 4...
 Notare anche l'ordine dei parametri tra parentesi.  Notare anche l'ordine dei parametri tra parentesi. 
 +
 +==== Parametri opzionali ====
 +Nel caso in cui chi usa la classe Auto non fornisca la targa, si può attribuirle un valore predefinito.
 +In caso contrario si solleverebbe un'eccezione a causa di una variabile senza valore...
 +
 +    def __init__(self, targa="0000000", km, prezzo):
  
 ==== Esempio 2 da terminare ==== ==== Esempio 2 da terminare ====
appunti3s/creare_classi_e_funzioni_in_python.1595410942.txt.gz · Last modified: 2020/07/22 11:42 by profpro