開始使用免費開始

唯讀屬性

第 2 章的 LoggedDF 類別是 pandas 的 DataFrame 子類別,另外加上了一個 created_at 屬性,用來記錄 DataFrame 建立的時間戳記,讓使用者知道資料是否過時。

但那個類別其實不太實用:因為我們可以在 DataFrame 建立後,隨意指定任何值給 created_at,整個屬性的意義就被破壞了!現在,透過 properties,就能把這個屬性改成唯讀。

第 2 章的 LoggedDF 類別已經幫你放在腳本窗格中可以使用。

本練習屬於課程

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(____)
編輯並執行程式碼