Python:函数
发布日期:2021-05-06 07:32:33 浏览次数:21 分类:原创文章

本文共 1457 字,大约阅读时间需要 4 分钟。

函数

1.定义函数:
def Function():
在这里插入图片描述
2.函数文档:

(1)和注释类似,但它被定义在函数的默认属性中,可以用Function.__doc__查看
ps.默认属性是一种特殊的属性,以双双下横线开始也以双下横线结束。
(2)用代码敲一下:
在这里插入图片描述
有没有觉得调用默认属性__doc__的时候打印的特别乱,回车和缩进都用\n \t来表示了,但是help君就会把它打印的很好看:
在这里插入图片描述
3.参数:
(1)关键字参数:当一个函数的参数特别多容易传入顺序搞混的时候,可以在调用函数的时候加上给idle的提示:
在这里插入图片描述
(2)默认参数:在定义函数的时候在参数列表中写上默认的值,这样如果调用函数的时候没有传进来值,就可以用默认值来运行:
在这里插入图片描述
(3)收集参数:将函数的参数个数定义成一个可变的,在定义的时候参数列表中写一个参数就行,在前面加上星号:
在这里插入图片描述
Python实际上是把参数打包成了一个元组,放到params为名的内存中去。

ps.如果除了收集参数之外还设置了其他要用的参数,如果在传的时候不标明exp = ‘balabala’,系统会把这个参数值默认的放到关键字参数的元组中。
建议是:在定义函数的时候,参数列表中给这个需要另写出的参数一个默认值,这样调用的时候才不容易出错。

pps.系统的print函数的第一个参数就是收集参数,如上面那条所说的,之后的其他参数都给了默认值。

4.函数的返回值:
函数运行完必须要返回值,过程运行完啥都没有,而Python可以说是只有函数没有过程。
Python的函数必定会返回一个值,就算没有写return语句,也会返回一个‘None’对象:
在这里插入图片描述
注意:Python可以返回多个值,直接逗号连接就可以了,这样Python就会把返回值打包成元组返回~

5.变量作用域:
Python也分局部变量和全局变量。
(1)局部变量:在函数中定义的变量出来函数后就不可以用了。这是因为在函数运行完后,这个函数的内存空间就会被释放掉,他的数据也会被清扫出去(原来放在栈中),所以在函数之后调用局部变量就会出错。
(2)全局变量:全局变量在整个代码段内都可以被访问,但是不可以在函数中被修改,如果试图修改,Python就会创建一个新的和你试图修改的变量同名的局部变量,也就是说函数中只能访问它,不能修改它:
在这里插入图片描述
但是如果你真的真的必须必须特别特别的想要在函数里修改一下全局变量,那人是活的嘛,还是有办法的:
在函数中使用global关键字就可以了~
在这里插入图片描述
注意:global count 和count = 10两个语句不可以合并

6.内嵌函数:Python是可以内嵌函数的,内部的函数只可以在嵌套它的函数中调用,出了这个范围就不可以了。

7.闭包:
在这里插入图片描述
太夭寿了,i居然都可以加括号调用!!太神奇了!!OMGD!!(浮夸)
然后,你居然也可以直接用第二个括号来传值给inner():
在这里插入图片描述
草!这是什么神仙语言啦!

对inner()来说outer的变量就是全局变量,就像第五条所说的一样,inner按理来说是不可以修改outer中定义的变量的,但是呢,有些时候就是需要修改外部的变量,于是就有了nonlocal关键字,使用方法和global一样:
在这里插入图片描述

注意:如果当前在outer的外部有一个全局变量i,inner中使用的值还是outer里的值,而不是全局变量,也就是说nonlocal标明使用的这个变量是当前函数的外部的变量。这也是nonlocal和global的区别。如果上面代码中的nonlocal改成global,使用的就是全局变量了:
在这里插入图片描述

上一篇:Java:HashMap的总结
下一篇:Python:变量

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月23日 04时11分59秒