walrus оператор в питоне
В питоне 3.8 существует walrus operator, который позволяет присваивать переменные доступные в теле, внутри выражений. Walrus operator получил такое название из-за своего сходства с мордой моржа. Этот синтаксис позволяет избегать повторения самого себя, например: a = [ 1 , 2 , 3 , 4 ] if (n := len (a)) > 10 : print ( f "List is too long ( { n } elements, expected <= 10)" ) Если не новый синтаксис, то вы бы не смогли назначить переменную внутри выражения. Вам пришлось бы создать переменную выше, что усложнит чтение кода: a = [ 1 , 2 , 3 , 4 ] n = len (a) if (n > 10 ): print ( f "List is too long ( { n } elements, expected <= 10)" ) Так-же Walrus operator помогает в регулярных выражениях: discount = 0.0 if (mo := re.search( r ' ( \d + ) % discount' , advertisement)): discount = float (mo.group( 1 )) / 100.0 Вам нужно было получить доступ к переменной в теле if, поэтому этот оператор очень полезен. Так же этот оператор полезен при чт