IniziaInizia gratis

Proprietà di sola lettura

La classe LoggedDF del Capitolo 2 era un'estensione della classe pandas DataFrame con un attributo aggiuntivo, created_at, che memorizzava il timestamp di creazione del DataFrame, così che l'utente potesse capire quanto sono datati i dati.

Ma quella classe non era molto utile: potevamo assegnare qualsiasi valore a created_at dopo la creazione del DataFrame, vanificando lo scopo dell'attributo! Ora, usando le proprietà, possiamo rendere l'attributo di sola lettura.

La classe LoggedDF del Capitolo 2 è disponibile per te nel riquadro dello script.

Questo esercizio fa parte del corso

Programmazione orientata agli oggetti in Python

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

import pandas as pd
from datetime import datetime

# LoggedDF class definition from Chapter 2
class LoggedDF(pd.DataFrame):
    def __init__(self, *args, **kwargs):
        pd.DataFrame.__init__(self, *args, **kwargs)
        self.created_at = datetime.today()

    def to_csv(self, *args, **kwargs):
        temp = self.copy()
        temp["created_at"] = self.created_at
        pd.DataFrame.to_csv(temp, *args, **kwargs)   

# Instantiate a LoggedDF called ldf
ldf = LoggedDF({"col1": [1,2], "col2":[3,4]}) 

# Assign a new value to ldf's created_at attribute and print
____ = ____
print(____)
Modifica ed esegui il codice