——以下所有内容均来自于蓝鲸运维SaaS开发实战公开课的ppt,我对其进行了整理做了笔记,便于以后查看学习。

函数

声明函数:

def hello():print("hello function")

调用函数:
使用()进行调用hello(),函数也是对象。

可以把函数名赋值给变量。


参数:

  1. 必备参数
    定义:
def func(p):print("p is {}".format(p))
func(1)
func(p=1)
#结果:
p is 1
p is 1
  1. 默认参数
def func(a,b=1,c=2):print("a={},b={},c={}".format(a,b,c))func(1,1,1)
func(1,c=1)
func(1)
#结果:
a=1,b=1,c=1
a=1,b=1,c=1
a=1,b=1,c=2
  1. 可变参数(覆盖所有参数调用)
def func(a,*args,**kwargs):print("a={},args={},kwarges={}".format(a,args,kwargs))func(1)
func(1,c=1)
func(1,1,1)
func(1,2,3,x=8)
#结果
a=1,args=(),kwargs={}
a=1,args=(),kwargs={'c':1}
a=1,args=(1,1),kwargs={}
a=1,args=(2,3),kwargs={'x':8}
  1. 可变参数调用
from datetime import datetimedatetime(year=1997,month=7,day=1)
#结果:
datetime.datetime(1997,7,1,0,0)args=(0,10,2)
list(range(*args))
#结果:
[0,2,4,6,8]kwargs={"year":1997,"month":7,"day":1}
datetime(**kwargs)
#结果:
datetime.datetime(1997,7,1,0,0)

Built-in函数

作用域:

  • LEGB解析顺序:Local,Enclosing,Global,Built-in

  • global关键字
    explain_scope.py
    global关键字会把我们想要变成全局变量的变量变成全局变量。

    当使用global关键字后:

  • 全局变量大写首字母,局部变量全小写

  • 不要使用Built-in和关键字作变量/函数名

函数式编程

函数式编程:

拉曼达表达式:
可以参考一下我写的另一篇博客:
https://blog.csdn.net/weixin_43614026/article/details/108422983
内嵌函数/内部函数:

首先举一个函数嵌套最简单易懂的例子:

使用时需要注意,只有在fun1作用域中才能调用fun2,出来fun1作用域就不能再调用fun2. 使用闭包时也需注意该问题。

闭包:
对于闭包,举一个简单例子,funy位于funx的作用域内,并且funy使用了funx的参数x,funx返回的返回值是funy这个函数对象。(python中一切皆对象)

然后对funx进行调用,传入参数5,现在实际上 i = 5 * y ,此时i是一个函数对象,再调用i函数其参数为6,可得到计算结果是5*6=30。

用如下方式也可以进行调用。

接下来,举一个错误的例子,和解决办法:

报错信息是局部变量x没有被定义,x在fun1被赋值为5,但是在fun2内成为了fun2作用域的局部变量而且没有赋值,所以报错。
变量一般会存储在栈内,像元组列表等容器类型会存储在堆内,不会产生这样的错误。(这里我也有些不清楚,大家可以查查网上的资料)
解决方法一:

解决方法二: 使用 nonlocal 关键字,作用与 global 关键字类似。可以把局部变量变成不是局部变量。

python函数和函数式编程相关推荐

  1. python函数与函数式编程

    在理解函数式编程之前,我还是对函数的调用,参数传递以及函数的嵌套调用一头雾水,还是花了点时间整理了写思绪,以便我后面对装饰器复杂的参数传递和函数的调用的理解. 函数的定义 def 函数名(): 代码块 ...

  2. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)

    1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...

  3. 过程或函数的副作用是_Python函数和函数式编程(两万字长文警告!一文彻底搞定函数,建议收藏!)...

    Python函数和函数式编程 函数是可重用的程序代码段,在Python中有常用的内置函数,例如len().sum()等. 在Pyhon模块和程序中也可以自定义函数.使用函数可以提高编程效率. 1.函数 ...

  4. Python中的匿名函数和函数式编程

    Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...

  5. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊...

    函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...

  6. python采用函数式_python -- 函数以及函数式编程

    函数以及函数式编程 到目前为止,我们的Python 代码已经实现了小的分块.它们都适合处理微小任务, 但是我们想复用这些代码,所以需要把大型代码织成可管理的代码段.代码复用的第一步是 使用函数,它是命 ...

  7. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  8. Python 进阶_函数式编程

    目录 目录 函数式编程 Python 函数式编程的特点 高阶函数 匿名函数 lambda 函数式编程相关的内置函数 filter 序列对象过滤器 map reduce 折叠 自定义的排序函数 最后 函 ...

  9. python语言支持函数式编程_python是函数式语言么

    函数式编程:functional,是一种编程范式. 函数式编程的特点:1. 把计算视为函数而非指令 2. 纯函数式编程:不需要变量,没有副作用,测试简单 3. 支持高阶函数,代码简洁 Python支持 ...

最新文章

  1. PHP获取IP地址以及IP地址所在位置
  2. emca 更改监听端口
  3. hdu 1753大小数相加
  4. DllRegisterServer的调用失败
  5. Python动态绑定属性和方法
  6. VTK:图表之GraphToPolyData
  7. 35行代码利用python生成字符画,非常适合初学者练习,附源码!
  8. Netty:Netty不断打开文件的BUG
  9. 互联网行业哪个职位比较有前途?
  10. airpin linux电脑,AirPinPcSender
  11. chromium下载编译过程
  12. LinkedBlockingQueue多线程安全的保障 —————— 开开开山怪
  13. 开源TMS团队协作web系统
  14. spring cloud 资源服务器授权配置
  15. Google退出中国了
  16. php artisan command,artisan command 小技巧
  17. Python 教程之 Pandas(14)—— 使用 Pandas 进行数据分析
  18. 字体生成GAN(GlyphGAN)学习笔记
  19. Google提出的以用户为中心的度量体系“HEART框架
  20. appium测试Cannot start the ‘XXX‘ application报错,无法打开app

热门文章

  1. JavaScript开发区块链只需200行代码 1
  2. 红帽公布2017财年第一季度财报
  3. Quartus II 与ModelSim-SE联合仿真Shift_ram
  4. Anaconda 安装 ml_metrics package
  5. 通过Repository Manager 1.3来管理戴尔驱动程序更新
  6. 寻java、.net、或C#兼职程序开发人员(上海)
  7. TiDB数据库备份恢复与数据迁移
  8. TypeScript 元组(Tuple)
  9. 18医科大学计算机基础,18春中国医科大学《计算机基础与应用 》在线作业100分答案...
  10. nvprof 使用记录; 以及使用 nvprof 查看tensorflow-gpu 核函数运行记录