Kom igångKom igång gratis

Skrivskyddade egenskaper

Klassen LoggedDF från kapitel 2 var en utökning av pandas DataFrame-klassen med ett extra attribut, created_at, som lagrade tidsstämpeln för när DataFrame skapades – så att användaren kunde se hur gammal datan är.

Men klassen hade en brist: det gick att tilldela vilket värde som helst till created_at efter att DataFrame hade skapats, vilket undergrävde hela syftet med attributet! Med hjälp av egenskaper kan vi nu göra attributet skrivskyddat.

Klassen LoggedDF från kapitel 2 finns tillgänglig i skriptpanelen.

Den här övningen är en del av kursen

Objektorienterad programmering i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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(____)
Redigera och kör kod