НачатьНачать бесплатно

Свойства только для чтения

Класс 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(____)
Редактировать и запускать код