Ошибка match-case: SyntaxError: name capture 'GAME' makes remaining patterns unreachable

Рейтинг: 1Ответов: 1Опубликовано: 24.02.2023

При попытки запустить код питон сразу выкидывает ошибку не пытаясь даже выполнять код

import random

GAME = 0
PAUSE = 1
SHOP = 2
state = GAME

state = random.randint(0, 2)

match state:
        case GAME:
            print(state)
        case PAUSE:
            print(state)
        case SHOP:
            print(state)

SyntaxError: name capture 'GAME' makes remaining patterns unreachable

Ответы

▲ 2Принят

вы будете получать ошибку до тех пор, пока не будете использовать классы

Пример

class State:
    GAME = 0
    PAUSE = 1
    SHOP = 2

в случае использования констант в данной конструкции, вам необходимо их соотнести с полями класса. А далее вот так

state = random.randint(0, 2)

match state:
    case State.GAME:
        print(state)
    case State.PAUSE:
        print(state)
    case State.SHOP:
        print(state)