0

具体的な例を示しますが、これは一般的なPythonの質問です。

apschedulerジョブオブジェクトのリストがありますリンクapschedulerジョブのリストからapschedulerジョブプロパティ「kwargs」のリストを取得するための最も効率的な方法を見つけようとしています。

リスト全体を繰り返し処理してkwargsの新しいリストを作成できることはわかっていますが、Pythonを初めて使用するため、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

まあ、あなたはほとんどそれを言った:

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

私の知る限り、それ以上の「よりクリーンな」方法はありません。

于 2012-10-17T18:18:53.383 に答える
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 に答える
0

私はこれについてジョンに同意します。

多分提案:

ジョブオブジェクトがすべてScheduleクラスタイプである場合は、クラス属性(selfではなくcls)に動的に追加します。つまり、インスタンス化されるたびに各ジョブオブジェクトをkwargsし、いつでもそのクラス属性から読み取ることができるようにします。つまり、schedule.get_gwargs(cls)と呼ばれるクラスメソッドを介して。

しかし、これが単純なリスト内包よりも優れているかどうかはわかりません。

于 2012-10-17T18:40:16.263 に答える