Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

pythonのglobal変数を関数内で利用するときはちゃんと宣言する

ちょっと横着して、グローバル変数を使おうとしたところ

UnboundLocalError: local variable 'count' referenced before assignment

なるエラーが。

調べてみると、Python公式に以下のような記述が

Python では、関数内で参照されるだけの変数は暗黙的にグローバルにです。関数の本体のどこかで値が変数に代入されたなら、それは明示的にグローバルであると宣言されない限り、ローカルであるとみなされます。

というわけで、hoge関数中でグローバル変数countを使いたい場合、関数冒頭で以下のようにします。

def hoge():
    global count

    //...