Schreibgeschützte Properties
Die Klasse LoggedDF aus Kapitel 2 war eine Erweiterung der pandas-Klasse DataFrame mit einem zusätzlichen Attribut created_at, das den Zeitpunkt speicherte, an dem der DataFrame erstellt wurde, damit Nutzer sehen konnten, wie veraltet die Daten sind.
Aber diese Klasse war nicht sehr nützlich: Wir konnten dem Attribut created_at nach der Erstellung des DataFrames einfach jeden beliebigen Wert zuweisen – damit war der Zweck des Attributs hinfällig! Jetzt können wir mit Properties das Attribut schreibgeschützt machen.
Die Klasse LoggedDF aus Kapitel 2 steht dir im Skriptbereich zur Verfügung.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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(____)