Python 函数也是一种对象
函数也是一种对象
func = lambda x, y: x+y
print func(3, 4)
def func(x, y):
return x+y
print func(3, 4)
效果相同。
函数可以作为参数传递
def func(x, y):
return x+y
print func(3, 4)
def test(f, a, b):
print 'test'
print f(a, b)
test(func, 3, 4)
def test(f, a, b):
print 'test'
print f(a, b)
test((lambda x, y: x**2 + y), 6, 9)
'''
test
45
'''
map() 函数
re = map((lambda x: x+3), [1, 3, 5, 6])
print re
'''
[4, 6, 8, 9]
'''
re = map((lambda x, y: x+y), [1, 3, 5, 6], [2, 3, 4, 5])
print re
'''
[3, 6, 9, 11]
'''
filter() 过滤出争取的数据
def func(a):
if a > 100:
return True
else:
return False
print filter(func, [10, 56, 101, 500])
'''
[101, 500]
'''
reduce()函数
reduce函数的第一reduce函数的第一个参数也是函数,但有一个要求,就是这个函数自身能接收两个参数。reduce可以累进地将函数作用于各个参数。如下例:
print reduce((lambda x, y: x+y), [1, 2, 5, 7, 9])
上面例子,相当于(((1+2)+5)+7)+9
Python 函数也是一种对象的更多相关文章
- python 函数名的应用(第一类对象),闭包,迭代器
1.函数名的应用(第一类对象) 函数名的命名规范和变量是一样的 函数名其实就是变量名 可以作为列表中的元素进行储存. def func1(): pass def func2(): pass lst = ...
- Python函数参数的五种类型
之前项目需求,需要通过反射获取函数的参数,python中可以通过函数签名(signature)来实现. 首先需要了解函数参数的类型,Python的参数类型一共有5种:POSITIONAL_OR_KEY ...
- python函数默认参数为可变对象的理解
1.代码在执行的过程中,遇到函数定义,初始化函数生成存储函数名,默认参数初识值,函数地址的函数对象. 2.代码执行不在初始化函数,而是直接执行函数体. 代码实例 这要从函数的特性说起,在 Python ...
- python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- Python浅拷贝与深拷贝(可变对象与不可变对象)
第一次遇到深拷贝和浅拷贝的问题是用python在一个for循环中对一个list赋值,使用的语句是 a = b 这个b会不断带入循环,每次计算得到,最后发现list乱七八糟的,后来才发现,python中 ...
- python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)
1.函数对象 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function).函 ...
- python:函数中五花八门的参数形式(茴香豆的『回』字有四种写法)
毫不夸张的说,python语言中关于函数参数的使用,是我见过最为灵活的,随便怎么玩都可以,本文以数学乘法为例,演示几种不同的传参形式: 一.默认参数 def multiply1(x, y): retu ...
- python 函数的参数的几种类型
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...
- 孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归
孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python函数非常的灵活,今天学习了python函数的以 ...
随机推荐
- Oracle之现有表上建新表、操作符、字符函数
#PLSQL技术培训15页PPT利用现有表创建表(百度) 说明:做新操作前要对旧表备份 具体百度 语法: create table <new_table_name> as select ...
- Docker学习笔记之docker volume 容器卷的那些事(一)
预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...
- c++ STL中的set和multiset
1.结构 set和multiset会根据特定的排序原则将元素排序.两者不同之处在于,multisets允许元素重复,而set不允许重复. set中的元素可以是任意类型的,但是由于需要排序,所以元素必须 ...
- v-show v-if 的使用
v-show:通过切换元素的display CSS属性实现显示隐藏: v-if:根据表达式的真假实现显示隐藏,如果隐藏,它绑定的元素都会销毁,显示的时候再重建: <div id="on ...
- No symbol "xxx" in current context解决
当gdb的版本低于相应的gcc版本的时候,就会出现debug的时候出现No symbol "*" in current context或者The address where a.o ...
- jQuery知识总结(转)
原文:http://fwhyy.com/2013/04/jquery-knowledge-summary/ 这篇文章在于筛选器的简单例子,让人一看就懂代码的作用 20170223 前言 jQuery一 ...
- Linux系统更改默认Python版本
Linux 默认的Python版本为Python2.X,但是在很多时候我们需要使用Python3.X,那么我们需要更改Linux的默认Python版本,更改很简单,只需要两句话. sudo updat ...
- golang BDD testcase framework.
BDD What is Behaviour Driven Development and why should I care? Behaviour Driven Development (BDD) i ...
- phpstudy手动把mysql数据库从5.5.56升级到5.6.41
查看mysql版本: mysql> select version(); 1.关闭mysql,把原来的D:/phpStudy/PHPTutorial/mysql改名为MySQL_5.5.53作为备 ...
- forever 用法
安装过Node.js后再安装forever,需要加-g参数,因为forever要求安装到全局环境下: npm install forever -g 常用指令: npm install forever ...