#python #multiprocessing #keyword-argument
#python #многопроцессорность #ключевое слово-аргумент
Вопрос:
Как вызвать эту функцию :
git.Repo.clone_from(git_url, repo_dir, branch=master, progress=CustomProgress())
с помощью функции обработки многопроцессорного модуля?
Здесь я использую аргументы ключевого слова, поэтому я должен передать эту функцию процесса многопроцессорному модулю.Я хочу, чтобы меня вызывали как отдельный процесс, например
P = multiprocessing.Process(target = git.Repo.clone_from, args = (git_url, repo_dir, branch=master, progress=CustomProgress())
Комментарии:
1. одним из подходов было бы передать лямбда-выражение и кортеж в
mulitprocessing.Process
и присвоить элементы кортежа ключевым словам в лямбда-выражении.
Ответ №1:
Спасибо Сурадж. Приведенный выше код после небольшого изменения синтаксиса работает: P = многопроцессорность.Процесс(target = git.Repo.clone_from, args = (git_url, repo_dir), kwargs = {«branch»: «master», «progress»: CustomProgress()})
Ответ №2:
Сформируйте словарь с вашими аргументами ключевого слова и передайте его в качестве kwargs
параметра объекту процесса.
P = multiprocessing.Process(target = git.Repo.clone_from, args = (git_url, repo_dir), kwargs = {"branch" : "master", "progress" : CustomProgress()})
Комментарии:
1. Спасибо Сурадж. Приведенный выше код после небольшого изменения синтаксиса работает: P = многопроцессорность. Процесс(target = git.Repo.clone_from, args = (git_url, repo_dir), kwargs = {«branch»: «master», «progress»: CustomProgress()})
2. Ах, опечатка, моя ошибка. Исправлен ответ для дальнейшего использования.