気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】Pythonスコープ

  • nonlocal指定時の出力に注意
def scope_test():

    def do_local():
        spam = "local spam"
    def do_nonlocal():
        nonlocal spam
        spam = "nonlocalspam"
    def do_global():
        global spam
        spam = "global spam"

    spam = "test spam"
    do_local()
    print("do_local:", spam)
    do_nonlocal()
    print("do_nonlocal:", spam)
    do_global()
    print("do_global:", spam)


scope_test()
print("global spam", spam)


# >>> do_local: local_spam
# >>> do_nonlocal: nonlocalspam
# >>> do_global: nonlocalspam
# >>> global spam: global spam