Picture

Python笔记 变量作用域

Python

局部变量

def func():
    word = 'Hello pynotes'

print(word)

code-2.png

上面的代码会报 NameError 错误 因为 变量word只在 func函数中定义,直接 在外部print python找不到这个变量

全局变量

name = 'silence'

def func():
    print(name)

func()

code.png

func函数中找不到name变量时就往再上一级查找

闭包

name = 'global name'
def func():
    name = 'Hello closure'

    def closure():
        print(name)

    closure()

func()

code-3.png

一些问题

age = 26

def func():
    now = age + 1
    age = 25
    print(age)

func()

code-4.png

你可能会以为 会输出 25,结果报了UnboundLocalError错误