Zacznij terazZacznij za darmo

Właściwości tylko do odczytu

Klasa LoggedDF z rozdziału 2 rozszerzała klasę DataFrame z biblioteki pandas o dodatkowy atrybut created_at, który przechowywał znacznik czasu utworzenia obiektu DataFrame – dzięki temu użytkownik mógł sprawdzić, jak aktualne są dane.

Ta klasa miała jednak poważną wadę: po utworzeniu obiektu DataFrame można było przypisać dowolną wartość do created_at, co całkowicie podważało sens tego atrybutu. Teraz, korzystając z właściwości (properties), możemy sprawić, że atrybut będzie tylko do odczytu.

Klasa LoggedDF z rozdziału 2 jest już dostępna w panelu skryptu.

To ćwiczenie jest częścią kursu

Programowanie obiektowe w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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(____)
Edytuj i uruchom kod