0
点赞
收藏
分享

微信扫一扫

Python函数知识总结

玉字璧 2022-04-17 阅读 87
python

位置参数:通过位置来体现实参和形参的对应关系

关键字参数:形式“形参=实参”

位置参数和关键字参数可以混用,位置参数在前,关键字参数在后

不定长参数:调用函数时可以接收任意数量的参数,实参传递时会封装成元组(位置参数)或字典(关键字参数)的形式。

拆分参数列表:如果函数所需参数已经存储在列表、元组或字典中,则可以直接从列表、元组或字典中拆分出来函数所需的参数;列表、元组拆分出来的作为位置参数,字典拆分出的作为关键字参数

对于在多个程序中可以复用的共功能,可以将其放在单独的脚本文件中,方便多个程序引用、共享;我们需要按照代码功能不同,将代码分类放入不同的脚本文件,这些脚本文件称为模块(Module)

全局变量__name__和系统模块

每个模块中都有一个全局变量__name__

__name__的作用是获取当前模块的名称,如果当前模块是单独执行的,则__name__的值就是__main__;如果作为模块导入,则__name__的值就是模块的名称

可以直接导入系统提供的模块,使用其中的功能

例:通过sys模块获取运行python脚本时传入的参数

猴子补丁主要用在不修改现有功能的前提下提供新功能的支持

例:使用部分三方模块,某些方法无法满足需求,此时可在不修改这些方法的情况下,利用猴子补丁编写自己的新方法进行代替,实现需求。

变量的作用域指变量的作用范围,即变量定义后,哪些地方可用;

局部变量:一个函数中定义的变量(包括形参),作用域从定义局部变量的位置到函数结束。

全局变量:所有函数外定义的变量,其在所有函数中可用;

在函数中使用global关键字,可以声明该函数中使用的是全局变量;

python中,一个函数体中可以包含另一个函数体,通过nonlocal关键字,可以使内层的函数直接使用外层函数定义的变量;

递归函数:在一个函数内部通过调用自己完成问题求解

问题规模较大时,递归调用会涉及多层函数调用,一方面会由于栈操作影响程序运行速度,另一方面python中有栈的限制,太多层的函数调用会引起栈溢出问题。

高阶函数:把函数作为参数的一种函数

函数不仅可以赋给形参,也可赋给普通变量,赋值后可用变量名代替函数名完成函数调用

lambda函数:匿名函数,一种不使用def定义函数的形式。

闭包:函数嵌套时,内层函数使用外层函数定义的局部变量,并且外层函数的返回值是内层函数的引用,就构成了闭包;

定义在外层函数中但由内层函数使用的变量称为自由变量

所谓闭包,就是将自由变量和内层函数代码打包在一起

装饰器:利用装饰器可以在不修改已有函数的情况下向已有函数注入代码,使其具备新的功能;

一个装饰器可以为多个函数注入代码,一个函数也可以引入多个装饰器的代码;

利用装饰器可以将日志处理、执行时间计算等较为通用的代码注入到不同的函数中,从而是得代码更加简洁。

当函数名带有小括号时,表示调用该函数

如果函数名不带小括号,表示一个指向函数块的对象,此时表示函数的引用

<来源网络汇总>

举报

相关推荐

0 条评论