在阿达,您可以定义自定义数据类型,如本在范围内创建自定义数字数据类型?
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范围内的数字。由于没有简单的方法来做到这一点,我只会坚持使用条件检查。 –