在前面定义的函数都是全局函数,并将它们定义在全局作用域中。函数还可以定义在另外的函数体中,被称为 嵌套函数。
# /usr/bin/python
# -*- coding: utf-8 -*-
# 代码文件:HelloProj/test.py
def calculate(n1, n2, opr):
multiple = 2
def add(a, b):
return (a + b) * multiple
def sub(a, b):
return (a - b) * multiple
if opr == '+':
return add(n1, n2)
else:
return sub(n1, n2)
print(calculate(1, 2, '+'))
两个嵌套函数:sub() 和 add()
嵌套函数可以访问所在外部函数calculate()中的变量,而外部函数不能访问嵌套函数局部变量。另外,嵌套函数的作用域在外部函数体内,因此外部函数体之外直接访问嵌套函数会发生错误。