genlib AB6717DB0D1B41694C2B63A16584EEFB by Unknown
autore:Unknown
Format: epub
Metodi di classe
I metodi di classe sono simili ai metodi statici, per il fatto che possono essere richiamati prima ancora di instanziare un oggetto della classe oppure utilizzando unâistanza della classe. Ma ai metodi di classe viene passato implicitamente come primo parametro la classe cui appartengono e quindi è possibile programmarli in modo più semplice, come nel Listato 15.2.
Listato 15.2 File circle_cm.py.
"""circle_cm module: contains the Circle class."""
class Circle:
"""Circle class"""
all_circles = [] â Variabile contenente la lista di tutti i cerchi che sono stati creati
pi = 3.14159
def __init__(self, r=1):
"""Create a Circle with the given radius"""
self.radius = r
self.__class__.all_circles.append(self)
def area(self):
"""determine the area of the Circle"""
return self.__class__.pi * self.radius * self.radius
@classmethod â [1]
def total_area(cls): â [2]
total = 0
for c in cls.all_circles: â [3]
total = total + c.area()
return total
>>> import circle_cm
>>> c1 = circle_cm.Circle(1)
>>> c2 = circle_cm.Circle(2)
>>> circle_cm.Circle.total_area()
15.70795
>>> c2.radius = 3
>>> circle_cm.Circle.total_area()
31.415899999999997
Qui si vede lâuso del decoratore @classmethod prima del metodo def [1]. Il parametro della classe è tradizionalmente cls [2]. Potete utilizzare cls al posto di self.__class__ [3].
Utilizzando un metodo di classe anziché un metodo statico, non sarete costretti a specificare esplicitamente il nome della classe in total_area. Di conseguenza, tutte le sottoclassi di Circle potranno comunque richiamare total_are e far riferimento ai propri membri, non a quelli di Circle.
VERIFICA â I METODI DI CLASSE
Scrivete un metodo di classe simile a total_area() che restituisca il totale delle circonferenze di tutti i cerchi.
scaricare
Questo sito non memorizza alcun file sul suo server. Abbiamo solo indice e link contenuto fornito da altri siti. Contatta i fornitori di contenuti per rimuovere eventuali contenuti di copyright e inviaci un'email. Cancelleremo immediatamente i collegamenti o il contenuto pertinenti.
Famiglia e relazioni | Mente, corpo e spirito |
Salute e benessere |
GrishaVerse - Sei di corvi by Leigh Bardugo(4179)
Helgoland by Carlo Rovelli(2308)
Steve Jobs by Walter Isaacson(2083)
Parole magiche 4 (Italian Edition) by Cristiano Tenca(1838)
Rose, rose by Bill James(1808)
È Facile Smettere Di Fumare by Allen Carr(1756)
Cinquanta in blu. Otto racconti gialli by AA. VV(1751)
La nona casa (Italian Edition) by Leigh Bardugo(1725)
21 lezioni per il XXI secolo by Yuval Noah Harari(1597)
La donna dei fiori di carta: romanzo by Donato Carrisi(1586)
Le 39 chiavi by AA.VV(1566)
L'eroe dai mille volti by Joseph Campbell(1564)
Parole magiche per gli animali (Italian Edition) by Cristiano Tenca(1556)
Come cambiare la tua mente by Michael Pollan(1518)
Il regno della quantità e i segni dei tempi by René Guénon(1517)
Le dieci regole per una vita gratificante by Dale Carnegie(1455)
Gestire il proprio tempo: I trucchi per organizzare meglio il proprio tempo e diventare produttivi (Italian Edition) by Arcimboldi Nicola(1386)
La Profezia di Celestino by James Redfield(1369)
Cassandra by Christa Wolf(1352)