在阿達,您可以定義自定義數據類型,如本在範圍內創建自定義數字數據類型?
type Day_Of_Month is range 1 .. 31;
所以現在你可以創建一個Day_Of_Month
變量,只能容納1到31之間的一個int這是不錯的,因爲我們沒有在想要更新值時通過適當的異常處理繼續進行條件檢查。
有沒有一種簡單的方法來在Python中做類似的事情?
在阿達,您可以定義自定義數據類型,如本在範圍內創建自定義數字數據類型?
type Day_Of_Month is range 1 .. 31;
所以現在你可以創建一個Day_Of_Month
變量,只能容納1到31之間的一個int這是不錯的,因爲我們沒有在想要更新值時通過適當的異常處理繼續進行條件檢查。
有沒有一種簡單的方法來在Python中做類似的事情?
它是一個多回答評論:
你可以使用datetime
模塊的日期和時間在Python工作。必要時它會提出適當的例外。
一般情況下,如果你有數據和某些你想在某些操作中保留的不變量,那麼創建一個類可以讓你在保持不變的情況下對數據執行這些操作。
注意:您不希望實現僅限制輸入/輸出操作的通用算術類:它不容易(請參閱decimal.Decimal
,fractions.Fraction
),並且在這種情況下它不是有用的,例如,什麼是正確的結果是:
day_of_month + 1
要回答它,你應該知道月份,年份(和時區有時)。因此,您開始實施datetime
模塊和pytz
,dateutil
包。
封閉或封裝邊界檢查的類是我能想到的唯一兩種方法。沒有像這樣的語言功能。 – brc
查看'datetime'模塊。您可以創建和使用'datetime'對象來完成此操作。 – wberry
我想我無意間把人們拋下了。這個例子只是我在網上找到的一個隨機的例子。我的代碼實際上是一個只能在1..10範圍內的數字。由於沒有簡單的方法來做到這一點,我只會堅持使用條件檢查。 –