python的函数???????

举报
Python爱好者 发表于 2020/12/29 00:50:07 2020/12/29
【摘要】 序言Python中的函数是个很重要的东西,那么对于这个很重要又很基础的东西我们应该如何去理解它,如何去掌握它呢?就像作为一个火影忍者学忍术一样,要掌握它的奥义才能一击必杀! 奥义一: 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:   >>> a = abs # 变量a指向abs函数>>> ...

640?wx_fmt=gif

序言Python中的函数是个很重要的东西,那么对于这个很重要又很基础的东西我们应该如何去理解它,如何去掌握它呢?就像作为一个火影忍者学忍术一样,要掌握它的奥义才能一击必杀!



奥义一:

函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

 

>>> a = abs # 变量a指向abs函数>>> a(-1) # 所以也可以通过a调用abs函数1

可以将任意函数名字改名。

 

奥义二:

定义一个函数要使用def语句,同时要有冒号,函数体放在缩进里面。

640?wx_fmt=png


 

奥义三:

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。

 

640?wx_fmt=png

  return None可以简写为return。

 

奥义四:

定义一个什么事也不做的空函数,可以用pass语句。还没想好怎么写函数的代码,就可以先用pass代替,让代码先运行起来。

640?wx_fmt=png

 

奥义五:

Python的函数返回多值其实就是返回一个tuple。

640?wx_fmt=png

 

奥义六:

默认参数:由于我们经常计算x2,所以,完全可以把第二个参数n的默认值设定为2:

 

def power(x, n=2):
    s = 1 while n > 0:
        n = n - 1
        s = s * x    return s

这样,当我们调用power(5)时,相当于调用power(5, 2):

 

奥义七:

当不按顺序提供部分默认参数时,需要把参数名写上。

 

640?wx_fmt=png

奥义八:

定义默认参数要牢记一点:默认参数必须指向不变对象!

 

奥义九:

把函数的参数改为可变参数:

def calc(*numbers):
    sum = 0    for n in numbers:
        sum = sum + n * n    return sum

定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。

 

奥义再临:

Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去

 

奥义必杀:

尾递归优化,尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。

return fact_iter(num - 1, num * product)#即返回函数本身。



以上奥义完毕,你将学会python忍术之超无限递归闻风丧胆无敌函数之术!





640?wx_fmt=jpeg


听说有气质的人都会关注这个公众号!

640?wx_fmt=jpeg


文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/100581693

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。