0

我会给你我的具体例子,但这是一个一般的 python 问题。

我有一个 apscheduler 作业对象列表Link我试图找出从我的 apscheduler 作业列表中获取 apscheduler 作业属性“kwargs”列表的最有效方法。

我知道我可以遍历整个列表并制作一个新的 kwargs 列表,但我想知道在 python 中是否有更有效/更清洁的方法来执行此操作,因为我是新手。谢谢!

from apscheduler.scheduler import Scheduler

schedule = Scheduler()
jobs = schedule.get_jobs() #jobs is a list of apscheduler jobs
jobs_kwargs = ???
4

3 回答 3

1

在同事的帮助下想通了。这可以通过使用地图来完成:

from apscheduler.scheduler import Scheduler

schedule = Scheduler()
jobs = schedule.get_jobs() #jobs is a list of apscheduler jobs
jobs_kwargs = map(lambda k: k.kwargs, jobs)

这应该更有效,因为它并行处理任务(我仍然需要查看它以获取更多信息)。不过感谢您的建议!

于 2012-10-17T20:51:52.017 回答
1

嗯,你说得差不多了:

jobs = schedule.get_jobs()
jobs_kwargs = [j.kwargs for j in jobs]

据我所知,真的没有比这更“干净”的方法了。

于 2012-10-17T18:18:53.383 回答
0

我同意约翰的观点。

也许是一个建议:

如果您的作业对象都是 Schedule 类类型,则动态附加到类属性(不是 self 而是 cls)即kwargs每个作业对象 kwargs 每当一个被实例化时,以便在任何时候,您都可以从该类属性中读取。通过即一个名为 ie schedule.get_gwargs(cls) 的类方法。

但我不确定这会带来比简单的列表理解更好的东西。

于 2012-10-17T18:40:16.263 回答