LINUX.ORG.RU

История изменений

Исправление kto_tama, (текущая версия) :

PEP 572, из-за которого так много шума, не вносит каких-то революционных изменений в язык
Эта штука уменьшает количество кода, в частности упрощает проверку наличия обьекта
например сравните старую версию

while True:
    line = fp.readline()
    if not line:
        break
    m = define_rx.match(line)
    if m:
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    else:
        m = undef_rx.match(line)
        if m:
            vars[m.group(1)] = 0

и новую, в которой строк почти в два раза меньше
while line := fp.readline():
    if m := define_rx.match(line):
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    elif m := undef_rx.match(line):
        vars[m.group(1)] = 0

Исходная версия kto_tama, :

PEP 572, из-за которого так много шума, не вносит каких-то революционных изменений в язык
Эта штука уменьшает количество кода, в частности упрощает проверку наличия обьекта
например сравните старую версию

while True:
    line = fp.readline()
    if not line:
        break
    m = define_rx.match(line)
    if m:
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    else:
        m = undef_rx.match(line)
        if m:
            vars[m.group(1)] = 0

и новую, в которой кода почти в два раза меньше
while line := fp.readline():
    if m := define_rx.match(line):
        n, v = m.group(1, 2)
        try:
            v = int(v)
        except ValueError:
            pass
        vars[n] = v
    elif m := undef_rx.match(line):
        vars[m.group(1)] = 0