#嵌套函数
def func1():
print('alex')
def func2():
print('eric')
func2()
func1()
#===>1、函数内部可以再次定义函数。2、执行需要被调用
age = 19
def func1():
print(age)
def func2():
print(age)
func2() #==>19
func1() #==》19
#由内而外调用直
age = 19
def func1():
print(age)
def func2():
age = 99
print(age)
func2() #==>99
func1() #==》19
#内部有值,先调用内部的
作用域:
#作用域
#在Python中,函数就是一个作用域{JaveScript},局部变量放置在其作用域中
#C# Jave中作用域{}
#代码定义完成后,作用域已经生成,作用域链向上查找
age = 18
def func1():
age = 73
def func2():
age=19
print(age)
return func2
val = func1()
print(val)
val()
匿名函数:
#匿名函数
# def func(x,y):
# if x>y:
# return x*y #普通函数
# else:
# return x/y
# print(func(3,8))
#
# a = lambda x,y:x*y if x>y else x/y#声明一个匿名函数
# print(a)
# print(a(3,8))
data = list(range(10))
print(data)
for index,i in enumerate (data):
data[index] = i*i
print (data)
# def f2(n):
# return n*n
print(list(map(lambda x:x*x,data))) #用匿名函数就节省了代码
#1,节省代码量
#2,看着高级