嵌套函数和作用域和匿名函数

#嵌套函数
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,看着高级
 

猜你喜欢

转载自www.cnblogs.com/davidz/p/9124017.html