Свойства только для чтения
Класс LoggedDF из главы 2 был расширением класса pandas DataFrame с дополнительным атрибутом created_at, в котором хранилась метка времени создания DataFrame. Это позволяло пользователю понять, насколько актуальны данные.
Однако этот класс имел существенный недостаток: после создания DataFrame можно было присвоить атрибуту created_at любое значение, что полностью лишало атрибут смысла. Используя свойства, мы можем сделать этот атрибут доступным только для чтения.
Класс LoggedDF из главы 2 уже доступен в панели скрипта.
Это упражнение является частью курса
Объектно-ориентированное программирование на Python
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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(____)