เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Properties แบบอ่านอย่างเดียว

คลาส LoggedDF จากบทที่ 2 เป็นคลาสที่ขยายมาจาก DataFrame ของ pandas โดยเพิ่ม attribute created_at สำหรับเก็บ timestamp ที่ DataFrame ถูกสร้างขึ้น เพื่อให้ผู้ใช้ทราบว่าข้อมูลนั้นเก่าแค่ไหน

แต่คลาสนั้นยังมีข้อจำกัด: ผู้ใช้สามารถกำหนดค่าใดก็ได้ให้กับ created_at หลังจากสร้าง DataFrame แล้ว ซึ่งทำให้จุดประสงค์ของ attribute นี้หมดความหมาย! ด้วย properties เราสามารถทำให้ attribute นี้เป็นแบบอ่านอย่างเดียวได้

คลาส LoggedDF จากบทที่ 2 มีให้แล้วใน script pane

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนโปรแกรมเชิงวัตถุใน 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(____)
แก้ไขและรันโค้ด