Вариант 3:
def do_something(a_list = ("any", "think", "whatever")):
read something from a_list
Вариант 3 по сравнению с Вариантом 1:
На мой взгляд, оба одинаково читаемы (хотя некоторые, похоже, думают по-разному в комментариях! :-)). Вы могли бы даже написать вариант 3, как это
def do_something(
a_list = ("any", "think", "whatever")):
read something from a_list
, который действительно сводит к минимуму разницу с точки зрения читаемости.
Однако, в отличие от варианта 1, вариант 3 определяет a_list
только один раз - в то время, когда определено do_something
. Это именно то, что мы хотим.
Вариант 3 по сравнению с Вариантом 2:
Избегайте глобальных переменных, если это возможно. Вариант 3 позволяет вам сделать это.
Кроме того, при использовании варианта 2 со временем или если другие люди будут поддерживать этот код, определение a_list
может быть отделено от def do_something
. Это может не иметь большого значения, но я думаю, что это несколько нежелательно.