开始使用免费开始使用

只读属性

第 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(____)
编辑并运行代码