Я работаю над проектом, который почти везде аргументы передаются ключом. Существуют только функции с позиционными параметрами, с параметрами ключевого слова (по умолчанию) или их сочетанием. Например, следующая функция:Что такое pythonic способ передать аргументы функции?
def complete_task(activity_task, message=None, data=None):
pass
Эта функция в текущем коде будет называться так:
complete_task(activity_task=activity_task, message="My massage", data=task_data)
Для меня нет никакого смысла называть аргументы, имя которых очевидно в контексте выполнение функции/по именам переменных. Я бы назвал это так:
complete_task(activity_task, "My message", task_data)
В некоторых случаях, когда не ясно, что аргумент вызова от контекста, или вывести из имен переменных, я мог бы сделать:
complete_task(activity_task, message="success", task_data=json_dump)
Так мне стало интересно, существует ли соглашение или «питонический» способ вызова функций с параметрами positional/keyword, , когда нет необходимости переупорядочивать аргументы метода или использовать значения по умолчанию для некоторых параметров ключевого слова.
Вы смешиваете функции с методами. Все в вашем посте - это функция, а не метод. –
@TomKarzes: Meh, Python вряд ли различает эти вещи. Метод - это «просто» функция, которая, как оказывается, привязана к классу (и получает доступ к нему). – Kevin
@TomKarzes Извините, я поправил себя. Я имел в виду «методы», потому что большинство случаев в проекте являются реальными методами, но для простого примера выше я написал его как функцию. Тем не менее, все остальное в вопросе, который, как мне кажется, относится к одному и тому же. – ddinchev