文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python函数的返回值与嵌套函数是什么

2023-06-02 08:22

关注

这篇文章主要介绍“Python函数的返回值与嵌套函数是什么”,在日常操作中,相信很多人在Python函数的返回值与嵌套函数是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python函数的返回值与嵌套函数是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.什么是返回值
def add(x, y):    print(x, y)   #输出:10 20    return x + y   # 返回值, return以后的语句将不会再执行    print(x)    print(y)add(10,20)
def add(x, y):    print(x, y)    # 输出:1 2    return x + y   # 函数体内,碰到return语句,函数执行完毕,之后的语句将不会再执行    return x - y   # 不会再次执行add(1,2)
2.函数的隐式返回和显示返回
3.函数多值返回
def get_data(x,y,z):    return x + 1, y + 1, z + 1print(get_data(1,2,3)) # 得到的是一个元组(2, 3, 4)
def get_data(x,y,z):    return [x + 1, y + 1, z + 1]print(get_data(1,2,3))  # 得到的是一个列表[2, 3, 4]
4.什么是嵌套函数
def outer_function():    # 内部函数    def inner_function():        print("inner_function")  # 输出:inner_function    print("outer_function")      # 输出:outer_function    # 内部调用    inner_function()outer_function()# 注意:inner_function函数只能在outer_function函数内部调用,无法再outer_function函数外部被调用
5.函数作用域
def add(x, y):    z = 100    print(x, y , z)  #输出:1 2 100add(1,2)print(z)  #报错:NameError: name 'z' is not defined
z = 100def add(x, y):    print(x, y, z)# 输出:1 2 100add(1, 2)print(z)  # 输出:100
6.函数的闭包
# 例1x=5def add():    y = x + 1    print(y)  #输出:6add()# 例2x=5def add():    x = x + 1  # 报错:local variable 'x' referenced before assignmentadd()# 报错原因分析:# 在例1中,函数内部引用的x为函数外部的x, 因此x的值为5# 在例2中,函数内部重新定义了x的值,那么整个函数内部都会使用这个内部x,# 因此在运算x + 1的时候,x还没有完成定义就被引用了,这里的x引用的一定是内部正在定义的 x,不是函数外部的 x=5这个x;# 例3:x=5def add():    print(x) # 这里的x引用的是x = 1的x,但是执行print(x)时,x还没有被定义,所以报错:local variable 'x' referenced before assignment    x =  1add()
# 例4:def outer_function():    x = 100    def inner_function():        print(x)        # 内部函数引用了外部函数的自由变量  输出:100    return inner_functionret = outer_function()ret()
7.关键字
x=1def add():    global x  # 使用global关键字,指定x的引用全局的x变量    x = x + 1    print(x)  #输出:2add()x = 100def foo():    global x  # x被声明了全局变量    x = 10    x += 1    print(x)  # x的值为11foo()print(x)      # 输出x的值为:11,原本这里应该引用的是全局变量x = 100 的,因此global关键字污染了全局变量 x
def outer_function():    x = 100    def inner_function():        x = x + 1       # 这样会报错,函数内部重新定义了x的值,但是还没有完成定义就被引用了        print(x)    return inner_functionret = outer_function()ret()def outer_function():    x = 1    def inner_function():        nonlocal x   # 使用nonlocal关键字声明x 为外层函数的x的值        x = x + 1    #所以这里使用的x 是外层函数的x        print(x)   #输出:2    return inner_functionret = outer_function()ret()
8.函数默认值的作用域
def add(lst = []):    lst.append('hello')    print(lst)add() # 输出:['hello']print('id={}'.format(id(add)))   # 函数对象的id值不变,调用的是同一个函数  id=1837000add() # 输出['hello', 'hello']print('id={}'.format(id(add)))   # 函数对象的id值不变,调用的是同一个函数  id=1837000# 查看函数的位置参数的默认值print(add.__defaults__)    #输出:(['hello', 'hello'],)# 查看函数的关键字参数的默认值print(add.__kwdefaults__)  #输出:None
def add(lst = []):    lst = lst[:]    lst.append('hello')    print(lst)add() # 输出:['hello']add() # 输出:['hello']
def add(lst=None):    if lst is None:        lst = []    lst.append(1)    print(lst)add()    # 输出:[1]print(add.__defaults__)  # 输出: (None,)add([1, 2, 3])    # 输出: [1, 2, 3, 1]print(add.__defaults__)  # 输出:(None,)add([4, 5, 6])     # 输出:[4, 5, 6, 1]print(add.__defaults__)    # 输出:(None,)
9.函数销毁
def add():    print('add')del addadd()

到此,关于“Python函数的返回值与嵌套函数是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯