在范围内创建自定义数字数据类型?

时间:2011-10-12 18:25:00

标签: python types

在Ada中,您可以定义自定义数据类型,例如此

type Day_Of_Month is range 1 .. 31;

所以现在你可以创建一个只能在1到31之间保存int的Day_Of_Month变量。这很好,因为我们不需要在想要更新值时继续进行条件检查,并有适当的例外处理

在Python中有一种简单的方法可以做类似的事情吗?

2 个答案:

答案 0 :(得分:1)

如果要经常使用此数据类型,可能值得为它创建一个类并覆盖运算符,以便它可以更加无缝地工作。这样,所有异常处理仍然是数据类型的内部处理,并且它为您提供了足够的灵活性来定义诸如2月和3月的天数或每月移动的天数之间的差异。

答案 1 :(得分:0)

这更像是评论而不是答案:

您可以使用datetime模块在​​Python中处理日期和时间。它会在必要时引发适当的例外。

一般情况下,如果您在某些操作期间有数据和某些不变量,那么创建一个允许您在保持不变量的同时对数据执行这些操作的类是合适的。

注意:您不希望实现仅限制操作的输入/输出的通用算术类:这并不容易(请参阅decimal.Decimalfractions.Fraction)并且它在此方面没有用处例如,正确的结果是什么:

day_of_month + 1

要回答它你应该知道月份,年份(有时候是时区)。因此,您开始实施datetime模块和pytzdateutil包。