函数的作用域
作用域:变量的访问权限,全局变量所在的位置在全局作用域,局部变量所在的位置仅在局部作用域。
函数内部可以直接访问其外部的变量,但函数外部不能直接访问其内部的变量。如果函数外部需要访问函数内部的变量,需函数内部把相应的变量以return
返回出来。
"""
全局作用域与局部作用域
"""
a = 10 # 全局变量 -> 全局作用域
print(a)
def func(): # 全局的一个函数
b = 20 # 局部变量 -> 局部作用域
print(a)
func()
print(b) # 此时不能直接访问变量b
def func3():
func() # 访问全局函数
func3()
"""
函数外部需要访问函数内部的变量
"""
def func():
c = 10
return c
c1 = func()
print(c1)
函数的嵌套
函数相当于一个变量,可以作为返回值进行返回,也可以作为参数进行互相传递。
函数名实际上就是一个变量名, 都表示一个内存地址。
"""
函数可以被其它的函数调用
"""
def func1():
pass
def func2():
func1() # 此时是函数的调用,并非函数嵌套
func2()
"""
函数的嵌套
"""
def func1():
b = 20
def func2(): # 函数的嵌套,相当于局部变量
pass
# func2 = def():
print(b)
func2() # 局部变量一般都是在局部作用域中被访问
print(func1())
"""
嵌套函数的运行顺序
"""
def func1():
print(123) # (1)
def func2():
print(456) # (3)
def func3():
print(789) # (5)
print(1) # (4)
func3()
print(2) # (6)
print(3) # (2)
func2()
print(4) # (7)
func1()
""" 运行结果
123
3
456
1
789
2
4
"""
"""
函数可以作为返回值进行返回,也可以作为参数进行互相传递
"""
def func():
def inner():
print(1