函数闭包: 在函数内部中,如果函数内部嵌套的函数对外包变量应用,该函数称之为闭包函数
def outer():
name = 'Raimond'
def inner():
name = 'Lily'
print(name)
return inner
outer()()
def outer():
name = 'Raimond'
def inner():
# name = 'Lily'
print(name)
return inner
outer()()
name = 'Global'
def outer():
# name = 'Raimond'
def inner():
# name = 'Lily'
print(name)
return inner
outer()()
C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe “C:/Users/user/PycharmProjects/hellow python/test.py”
Lily
Raimond
Global
Process finished with exit code 0
def outer():
# name = 'Raimond'
def inner():
# name = 'Lily'
print(name)
return inner
name = 'here'
outer()()
C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe “C:/Users/user/PycharmProjects/hellow python/test.py”
here
Process finished with exit code 0
def outer():
# name = 'Raimond'
def inner():
# name = 'Lily'
print(name)
return inner
def foo():
name = '123'
outer()()
foo()
C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe “C:/Users/user/PycharmProjects/hellow python/test.py”
Traceback (most recent call last):
File “C:/Users/user/PycharmProjects/hellow python/test.py”, line 12, in
foo()
File “C:/Users/user/PycharmProjects/hellow python/test.py”, line 11, in foo
outer()()
File “C:/Users/user/PycharmProjects/hellow python/test.py”, line 5, in inner
print(name)
NameError: name ‘name’ is not defined
Process finished with exit code 1