私はCelery/Djangoで遊んでいます。その例のcelery.pyファイルで次の行ラムダユースケース混乱
lambda:settings.INSTALLED_APPS
は
autodiscover_tasks()
で仮パラメータ
packages
の実際のパラメータである
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS, force=True)
があります。そしてsettings.INSTALLED_APPS
はタプルです。
autodiscover_tasks()
は、だから私の質問があり、それが渡された関数を呼び出すのいずれか、または直接それがその最初の行の一つに与えられた変数を割り当て...
packages = packages() if callable(packages) else packages
。私はなぜこれがこのように行われたのか分からない。非常に冗長なようです。タプルの神がそれを望んでいたので、ちょうどsettings.INSTALLED_APPS
を渡すのはなぜですか?代わりにそれを呼び出す無名関数を渡すのはなぜですか?私はここで何が欠けていますか?
完璧です。ありがとう! –