PROGRAMMAZIONE PYTHON

L’articolo scopre vari aspetti dietro l’uso di repr() e str() per le classi Python

Le classi Python necessitano di rappresentazioni di stringhe per fornire all’utente e allo sviluppatore più informazioni di un semplice pasticcio di lettere. fotografato da Deputato Surendran SU Unsplash

Le classi Python hanno molte facce. Ad esempio, puoi creare una classe vuota:

class MyClass:
pass

e può ancora essere utile, ad esempio, come un valore sentinella. Puoi aggiungere un __init__() metodo:

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

Sarà comunque una lezione molto semplice, ma questa volta manterrà un valore particolare.

Uno straordinario potere delle classi Python è che possono essere utilizzate come tipi, come mostrato di seguito:

def foo(x: MyClass, n: int) -> list(MyClass):
return (x) * n

Ricorda che non implementare il file __init__() metodo non significa che non esista. In effetti, abbiamo sovraccaricato il file __init__() metodo sopra, non solo implementato. Questo è un altro aspetto significativo delle classi Python che dovresti conoscere: puoi sovraccaricare molti altri metodi, come __new__(), __eq__()E __setattr__(). Se non sovraccarichi questi metodi, alcuni avranno la loro implementazione predefinita (come __init__(), __new__(), __setattr__()E __eq__()), mentre altri no (come __lt__() e tutti gli altri metodi di confronto diversi da __eq__(), __getitem__(), __setitem__() E __len__()).

Una classe può ereditare da un’altra classe, come qui:

class MyClass(dict):
@staticmethod
def say_hello(self):
print("Hello!")

e, anche come sopra, può utilizzare metodi statici, ma anche metodi di classe. Puoi creare classi mixin e classi base astratte, singleton e creare tantissime altre cose, a volte molto utili.

Le classi Python hanno così tante facce che ci vorrebbero anni per discuterle in dettaglio, e lo faremo nei prossimi articoli. In questo ci concentreremo su un aspetto particolare: la differenza tra e la potenza del __repr__() E __str__() metodi.

A prima vista potresti pensare che questo sia un argomento minore, ma in realtà è piuttosto importante. È facile implementare una classe Python, ma è necessario uno sforzo maggiore per implementare una classe Python Bene

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *