建立一個 dataclass
Dataclass 可以用更彈性的方式來儲存與操作資料。之前我們用 namedtuple 來表示體重記錄,做出了一個好用的資料結構。這段程式碼中,我們要用 dataclass 做同樣的事,但另外加入自訂的 property,回傳體重與鰭長的比值。Dataclass 會先定義一組欄位及其型別。接著你可以定義任何屬性(properties),也就是定義在 dataclass 上、作用於自身並回傳與資料相關的額外資訊的函式。例如,一個 person 的 dataclass 可能會有一個屬性,根據生日與目前日期計算一個人的實際年齡。
本練習屬於課程
Python 的資料型別
練習說明
- 從
dataclasses匯入dataclass。 - 在 dataclass 中加入
species(string)、sex(string)、body_mass(int)與flipper_length(int)欄位。 - 加上一個屬性(
mass_to_flipper_length_ratio),回傳body_mass除以flipper_length的結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import dataclass
from ____ import ____
@____
class WeightEntry:
# Define the fields on the class
____: str
____: int
____: int
____: str
# Define a property that returns the body_mass / flipper_length
____
____ mass_to_flipper_length_ratio(____):
return ____.body_mass / ____.____