Nur-Lese-Eigenschaften
Die Klasse LoggedDF
aus Kapitel 2 war eine Erweiterung der Klasse pandas
DataFrame, die ein zusätzliches Attribut created_at
hatte, das den Zeitstempel speicherte, als der DataFrame erstellt wurde, damit der Benutzer sehen konnte, wie veraltet die Daten sind.
Aber diese Klasse war nicht sehr nützlich: Wir konnten created_at
einfach einen beliebigen Wert zuweisen, nachdem der DataFrame erstellt worden war, und damit den ganzen Sinn des Attributs zunichte machen! Jetzt können wir das Attribut mit Hilfe von Eigenschaften schreibgeschützt machen.
Die Klasse LoggedDF
aus Kapitel 2 ist im Skriptfenster für dich verfügbar.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung in Python
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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(____)