python - 如何在 Python 中正确实现方法级联 - 链接?

标签 python chaining

我有一个大致像这样的 python 代码:

class SomeClass():

    def get_date(self):
        date = # read the data from the database in YYYY-MM-DD HH:MM:SS format
        return date

现在,我将在 API 查询中使用返回值,它接受输入作为 unix 时间戳。实际上,我可以将返回的日期提供给另一个函数以将其转换为时间戳,但我认为这将是了解函数级联/链接的好机会,我一直想知道 Python 中的这个问题。

现在,我基本上想要实现的是这样的:

  • 如果我只执行 SomeClass.get_date(),我希望日期的格式与从数据库返回的格式相同,即 YYYY-MM-DD HH:MM:SS
  • 如果我执行 SomeClass.get_date().as_timestamp(),我应该将它作为时间戳获取。
  • 如果不可能,我会接受 SomeClass.get_date().as_datetime()SomeClass.get_date().as_timestamp()
  • 我可能将第二个函数 (.as_timestamp()) 用于多个主要函数(我可能需要将多个日期时间列转换为时间戳)。

我研究了一些函数级联的例子。他们主要是说关键是返回 self,但我找不到任何关于如何以我需要的方式实现它的信息。

我基本上需要将返回值送入第二个函数(我猜),但不确定是否可行,也不知道该怎么做。有任何想法吗?

最佳答案

你要找的看起来更像这样:

import time
import calendar

class DateClass():

  def get_date(self):
    self = # read the data from the database in YYYY-MM-DD HH:MM:SS format
    return self

  def as_timestamp(self):
    mysql_time = time.strptime(self, '%Y-%m-%d %H:%M:%S')
    self = calendar.timegm(mysql_time)
    return self

d = DateClass()
print(d.get_date())
print(d.get_date().as_timestamp())
print(d)
d.get_date()
print(d)

第一个输出是 MySQL 日期时间,第二个是 Unix 时间戳,第三个也是 unix 时间戳,第四个是日期时间。 get_date()as_timestamp() 在调用实例时改变实例 d

在此配置中,as_timestamp() 需要 get_date(),这似乎符合您的问题,但您可以通过分配 self 来更改它 从数据库中 as_timestamp() 像这样:

def as_timestamp(self):
  self = # read the data from the database in YYYY-MM-DD HH:MM:SS format
  mysql_time = time.strptime(self, '%Y-%m-%d %H:%M:%S')
  self = calendar.timegm(mysql_time)
  return self

这样可以独立于 get_date() 调用 as_timestamp()。然后,您还可以添加 d.as_timestamp() 来改变 d 的任何迭代,以便 d 是一个时间戳。

关于python - 如何在 Python 中正确实现方法级联 - 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51748004/

相关文章:

python - python 中的相交列表不起作用

python - <BEA-050001> WLContext.close() 是在与创建它的线程不同的线程中调用的

javascript - 如何访问链后面部分的 promise 结果

qt - 在 QT 中,链接模型无法按预期工作

javascript - 从所有匹配的表单元素中删除一个类..最干净的方法?

javascript - 通过更新 then() 内的延迟来链接 jQuery 延迟?

python - 通过索引访问行号

python - 聚合 numpy 函数

python - 提取 Nx3 数组的特定行,每列都满足条件

android - RxJava 平面图链接请求