嵌套函数
#例1
age = 19
def func1():
def func2():
print(age)
func2() # func2必须调用,才能执行 ,在函数内调用
func1()
>> 19
#例2
age = 19
def func1():
age = 87
def func2():
print(age)
func2() # func2必须调用,才能执行 ,在函数内调用
func1()
>> 87
#例3
age = 19
def func1():
def func2():
print(age)
age = 87
func2() # func2必须调用,才能执行 ,在函数内调用
func1()
>> 87
#例4
age = 19
def func1():
def func2():
print(age)
func2() # func2必须调用,才能执行 ,在函数内调用
age = 87
func1()
>>
Traceback (most recent call last):
File "C:/Users/yuxin/OneDrive/PycharmProjects/learn_oop/test2.py", line 12, in <module>
func1()
File "C:/Users/yuxin/OneDrive/PycharmProjects/learn_oop/test2.py", line 10, in func1
func2() # func2必须调用,才能执行 ,在函数内调用
File "C:/Users/yuxin/OneDrive/PycharmProjects/learn_oop/test2.py", line 9, in func2
print(age)
NameError: free variable 'age' referenced before assignment in enclosing scope
'''
1.函数内可以再次定义函数
2.函数要想执行必须调用
3.例3的问题是由于python命名空间,在定义函数时有预加载,调用时才赋值
'''