Read-only properties
The LoggedDF
class from Chapter 2 was an extension of the pandas
DataFrame class that had an additional created_at
attribute that stored the timestamp when the DataFrame was created, so that the user could see how out-of-date the data is.
But that class wasn't very useful: we could just assign any value to created_at
after the DataFrame was created, thus defeating the whole point of the attribute! Now, using properties, we can make the attribute read-only.
The LoggedDF
class from Chapter 2 is available for you in the script pane.
This exercise is part of the course
Object-Oriented Programming in Python
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
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(____)