Inizia subitoInizia 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 corso

esercizio interattivo pratico

Prova questo esercizio completando questo 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