只读属性
第 2 章中的 LoggedDF 类是对 pandas 的 DataFrame 类的扩展,新增了一个 created_at 属性,用来存储创建该 DataFrame 的时间戳,方便用户判断数据是否过期。
但这个类并不实用:在 DataFrame 创建后,我们可以随意给 created_at 赋任何值,这就违背了该属性的初衷!现在,借助属性(property),我们可以把该属性设为只读。
脚本面板中已为您提供第 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(____)