博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数式编程与参数
阅读量:5038 次
发布时间:2019-06-12

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

函数:def定义,有返回值

过程:def定义,没有返回值

 

函数式编程是 抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。所以,任意函数,只要输入是确定的,输出就是确定的,就像数学里的函数,变量和因变量的关系是明确的。

Python对函数式编程提供部分支持,由于Python允许使用变量,所以Python不是纯函数式编程语言。

数学表达式:(1+2)*3-4

# 面向过程var a = 1 + 2var b = a * 3var c = b - 4# 函数式var result = subtract(multiply(add(1, 2), 3), 4)

函数式编程的语言:lisp, hashshell,erlang

 

形参与实参

>>> def test(a, b):  # a,b就是形参...   print(a)...   print(b)...>>> test(1, 2) # 1,2就是实参12

 

默认参数(声明时)

>>> def test(a, b=2): # 这里的默认参数就是b...   print(a)...   print(b)...>>> test(1)12

 

位置参数与关键字参数(调用时)

>>> def test(a, b, c):...   print(a)...   print(b)...   print(c)...>>> test(1,c=2,b=3) # 这里的1就是位置参数,2和3是关键字参数132

 

不固定参数

*args:把对应的位置参数放到元组里

**kwargs:把对应的关键字参数放到字典里

>>> def test(*args, **kwargs):...   print(args)...   print(kwargs)...>>> test(1,2,3,a=4,b=5) # 等价于>>> test(*[1,2,3], **{'b':5,'a':4})(1, 2, 3){
'b': 5, 'a': 4}

 

声明函数时,不固定参数一定要放在位置参数和默认参数的后面

调用函数时,关键字参数一定要放在位置参数的后面

转载于:https://www.cnblogs.com/allenzhang-920/p/8735634.html

你可能感兴趣的文章
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
C#inSSIDer强大的wifi无线热点信号扫描器源码
查看>>
「Foundation」集合
查看>>
算法时间复杂度
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
[转载]JDK的动态代理深入解析(Proxy,InvocationHandler)
查看>>
centos7 搭建vsftp服务器
查看>>
RijndaelManaged 加密
查看>>