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

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

原文地址:https://www.cnblogs.com/davidz/p/9124017.html

时间: 2024-10-05 00:32:00

嵌套函数和作用域和匿名函数的相关文章

函数(作用域,匿名函数,函数式编程,高阶函数)

一.函数作用域 1.函数名表示的是内存地址 1 def test1(): 2 print('in the test1') 3 def test(): 4 print('in the test') 5 return test1 6 7 print(test()) 打印:in the test<function test1 at 0x000001E90E452EA0> 2.函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 1 name = 'xiaopang' 2 def f

函数的作用域与匿名函数

1.函数作用域:从内到外寻找 def test(): name = 'Mike' def test1(): name = 'John' def test2(): name = 'Jack' print(name) return test2 return test1print(test()) #只是打印出test1的内存地址a = test()a() # = test()() 运行test1b = a()b() # = test()()()运行test2 打印出jack 2.匿名函数:表示方法:l

Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") return test1 res = test() print(res) 输出结果 test <function test1 at 0x021F5C90> 分析:这里print(res)输出的是te

函数作用域,匿名函数,map,filter,reduce---Python重新开始第五天

函数作用域 函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 1 name='alex' 2 3 def foo(): 4 name='lhf' 5 def bar(): 6 name='wupeiqi' 7 print(name) 8 def tt(): 9 print(name) 10 return tt 11 return bar 12 13 # bar=foo() 14 # tt=bar() 15 # print(tt) 16 # tt() 17 r1 = foo(

python学习-day16:函数作用域、匿名函数、函数式编程、map、filter、reduce函数、内置函数r

一.作用域 作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变 二.匿名函数 lambda:正常和其他函数进行配合使用.正常无需把匿名函数赋值给一个变量. f=lambda x:x*x print(f) #打印指向该函数的内存地址 print(f(5)) #内存地址(5) 调用运行该函数 def cala(x): y=x*x return y z=cala(5) print(z) >>> <function <lambda> at 0x10137d950&g

python协程函数、递归、匿名函数与内置函数使用、模块与包

目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为生成器的语句形式. 而使用生成器的场景:使用生成器最好的场景就

JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

“JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是将一组需求分解成一组函数与数据结构的技能. 1.函数的功能 代码重复性使用 模块化编程 2.语法: 使用函数前要先定义才能使用 函数定义有三个部分:函数名,参数列表,函数体 格式: 1 function 函数名([参数1, 参数2, ...]){ 2 3 函数执行部分; 4 5 return 表达式; 6 7

JS执行顺序-函数声明提升、匿名函数、函数表达式

大方向上: JS 是按照 代码块 进行 编译.执行 的. 学习至: 1.变量声明提升 2.新唐的博客 3.js中匿名函数的创建与调用方法分析 4.前端圣经 - 高程三 5.深入理解变量声明提升和函数声明提升 因为没有好好地分类.可能会比较杂.为了系统地学习,先了解几个概念. 一. <script> 区分的代码块. JS是按照代码块 编译 和 执行的.代码块间 相互独立,但是 变量和方法 共享. <script> alert('代码块一'); </script> <

python 函数的作用域,闭包函数的用法

一.三元表达式 if条件成功的值    if  条件   else else条件成功的值 #if条件成立的结果 if 条件 else else条件成立的结果 # a = 20 # b = 10 # c = 5 if a>b else 10 # print(c) 二.函数的命名空间 命名空间一共分为三种: 全局命名空间 局部命名空间 内置命名空间 *内置命名空间中存放了python解释器为我们提供的名字:input,print,str,list,tuple...它们都是我们熟悉的,拿过来就可以用的