Первый xyz = 0
может быть опущен, потому что в следующем блоке кода вы переопределяете его значение.
Он либо пойдет все, как ожидалось, и xyz
будет установлен на 1
:
try:
do_something
xyz = 1
или оно перехватит исключение и установит для него 2
или 0
:
except (SomeException) as e:
do_somethingelse
if condition A happens:
xyz = 2
else:
xyz = 0