gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:51 24 4
gpt4 key购买 nike

我有一个大致像这样的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com