v1, ..., v4
, определенные внутри assigner
, являются локальными для этой функции и не влияют на те, которые были определены вне ее.Любая полуприличная IDE показала бы предупреждение о том, что эти локальные переменные затеняют глобальные переменные с одинаковыми именами.
Не связано, но у этого цикла нет полезной цели.
Использование функции здесьИзлишне, вы можете просто распаковать список:
v1, v2, v3, v4 = ['2', '7', '18', '3']
Если вы настаиваете на использовании функции (или если вам нужна функция, т.е. у вас есть логика вместо простого назначения), убедитесь, что return
переменные из функции:
# no need to define v1, ..., v4 outside
def assigner(list_a):
v1 = list_a[0]
v2 = list_a[1]
v3 = list_a[2]
v4 = list_a[3]
# some magic logic
return v1, v2, v3, v4
v1, v2, v3, v4 = assigner(list_1)
Некоторые люди будут предлагать использовать global
переменные, но 9/10 раз это было бы плохим предложением.