Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:为数字添加方法_Python_Date_Syntactic Sugar - Fatal编程技术网

Python:为数字添加方法

Python:为数字添加方法,python,date,syntactic-sugar,Python,Date,Syntactic Sugar,受到Ruby的诱惑,我想在python中处理日期时添加一些语法糖。 如何实现此方法:(3).days.ago()或(4).days.from_now()?要创建与所需语法相近的语法,请使用子类int添加新方法(内置int类型不可修改,因此子类是扩展整数行为的唯一选项)。使用以下公式计算日期偏移: 要创建与所需语法相近的语法,可以使用子类int来添加新方法(内置int类型是不可修改的,因此子类是扩展整数行为的唯一选项)。使用以下公式计算日期偏移: 您尝试过什么吗?我在中发现了类似的功能,但调查代码

受到Ruby的诱惑,我想在python中处理日期时添加一些语法糖。
如何实现此方法:(3).days.ago()或(4).days.from_now()?

要创建与所需语法相近的语法,请使用子类int添加新方法(内置int类型不可修改,因此子类是扩展整数行为的唯一选项)。使用以下公式计算日期偏移:


要创建与所需语法相近的语法,可以使用子类int来添加新方法(内置int类型是不可修改的,因此子类是扩展整数行为的唯一选项)。使用以下公式计算日期偏移:


您尝试过什么吗?我在中发现了类似的功能,但调查代码需要一些时间。我试图找到一种更快的方法来实现这一点。你想用python编写ruby吗?:)@Nozim:Python不是Ruby。您不能使用monkeypatch内置类型。聪明也许很酷,但可读性很重要。我知道Python不是Ruby。如果你帮不上忙,请不要滔滔不绝地谈论这个话题。非常感谢。您尝试过什么吗?我在中发现了类似的功能,但调查代码需要一些时间。我试图找到一种更快的方法来实现这一点。你想用python编写ruby吗?:)@Nozim:Python不是Ruby。您不能使用monkeypatch内置类型。聪明也许很酷,但可读性很重要。我知道Python不是Ruby。如果你帮不上忙,请不要滔滔不绝地谈论这个话题。非常感谢。我想用Mine包装这个函数。问题在于用python实现“(3).days.ago()”,而不是获取日期。这只是这个技巧的一个应用程序。@Nozim您的需求与语言提供的内容不相交。我想用Mine来包装这些函数。问题在于用python实现“(3).days.ago()”,而不是获取日期。这只是这个技巧的一个应用。@Nozim您的需求与语言提供的内容不相交。
>>> from datetime import date, timedelta

>>> class Int(int):
        def days_ago(self):
            return date.today() - timedelta(days=self)
        def days_from_now(self):
            return date.today() + timedelta(days=self)

>>> Int(3).days_ago()
datetime.date(2013, 4, 5)
>>> Int(4).days_from_now()
datetime.date(2013, 4, 12)