Por que não posso definir uma variável global em Python?

Como as variáveis ​​globais funcionam em Python? Eu sei que as variáveis ​​globais são más, estou apenas experimentando.

Isso não funciona em python:

G = None

def foo():
    if G is None:
        G = 1

foo()

Eu recebo um erro:

UnboundLocalError: local variable 'G' referenced before assignment

O que estou fazendo de errado?