Python函数基础实例详解
一、函数嵌套
函数嵌套指的是在一个函数内部定义另一个函数,被定义的函数通常被称为子函数或嵌套函数,它可以访问父函数的局部变量,但是父函数不能访问子函数的局部变量。
示例一:
def outer():
x = 1
def inner():
print(x)
inner()
outer()
运行结果为:
1
在这个示例中,内部函数 inner()
可以访问外部函数 outer()
中的局部变量 x
,因此 inner()
打印出了变量 x
的值 1。
二、命名空间
在Python中,每个变量都被分配给一个命名空间,命名空间可以简单理解为变量名和变量值所在的映射关系。Python中的命名空间主要分为以下三种:内置命名空间、全局命名空间和局部命名空间。
示例二:
def func():
x = 1
print(locals()) # 打印局部命名空间
func() # x被分配到了局部命名空间中
运行结果为:
{'x': 1}
在这个示例中,我们使用 locals()
方法来打印函数中的局部命名空间,可以看到变量 x
被分配到了局部命名空间中。
三、函数对象
在Python中,函数本身也是一个对象,因此我们可以将函数作为参数传递给其他函数,或将函数作为其他函数的返回值。这种特性称作一等函数(First-class Function)。
示例三:
def func(x):
return x + 1
def do_twice(func, arg):
return func(func(arg))
print(do_twice(func, 1))
运行结果为:
3
在这个示例中,我们定义了一个函数 do_twice()
,它接受两个参数:一个函数和一个参数。函数 do_twice()
内部先将参数 arg
传递给了函数 func()
,接着将 func(func(arg))
的返回值作为自己的返回值。
四、闭包函数
闭包函数是指返回一个函数的函数,这个返回的函数可以访问它创建时的上下文环境中的变量,不论这些环境变量在返回的函数被调用时是否仍然存在。
示例四:
def outer(x):
def inner(y):
return x + y
return inner
add3 = outer(3)
print(add3(5)) # 输出 8
print(add3(7)) # 输出 10
在这个示例中,我们定义了一个函数 outer()
,它返回内部函数 inner()
的引用。当我们调用 outer(3)
时,返回一个新的函数,这个新函数类似于 inner()
,但却具有父函数内的局部变量 x
值等于 3。因此 add3(5)
的返回值等于 8。
结论
本文介绍了Python函数的一些基础知识,包括函数嵌套、命名空间、函数对象和闭包函数等。这些知识对于提高Python编程能力和理解Python内部实现机制都有不小的帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】 - Python技术站