Python函数嵌套实例
在Python中函数可以作为参数进行传递,而也可以赋值给其他变量(类似Javascript,或者C/C++中的函数指针);
类似Javascript,Python支持函数嵌套,Javascript嵌套函数的应用模式对Python适用;
>>> def multiplier(factor):
... def multiple(number):
... return number * factor
... return multiple
...
>>>
>>> multiplier(3)(3)
9
>>> multiplier(4)(3)
与嵌套函数紧密相关的就是闭包特性,举一个简单的例子:
>>> def test():
... a = {'name': 'wyj'}
... def f():
... return a['name']
... return f
...
>>> def test():
... a = {'name': 'wyj'}
... def f():
... return a['name']
... return a,f
...
>>> a,f = test()
>>> f()
'wyj'
>>> a['name'] = 'ljq'
>>> f()
'ljq'
例子3
#! /usr/bin/python def yao1(a=1,b=32): def yao2(c=54): def yao3(d=3): def yao4(e=10): return a+b+c+d+e return yao4 return yao3 return yao2 print yao1()()()()
相关推荐
-
Python greenlet实现原理和使用示例
最近开始研究Python的并行开发技术,包括多线程,多进程,协程等.逐步整理了网上的一些资料,今天整理了一下greenlet相关的资料. 并发处理的技术背景 并行化处理目前很受重视, 因为在很多时候,并行计算能大大的提高系统吞吐量,尤其在现在多核多处理器的时代, 所以像lisp这种古老的语言又被人们重新拿了起来, 函数式编程也越来越流行. 介绍一个python的并行处理的一个库: greenlet. python 有一个非常有名的库叫做 stackless ,用来做并发处理, 主要是弄了个叫做t
-
python的迭代器与生成器实例详解
本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 1.1 使用迭代器的优点 对于原生支持随机访问的数据结构(如tuple.list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值).但对于无法随机访问的数据结构(比
-
Python中的类学习笔记
Python使用中面向对象的语言,支持继承.多态: 定义一个Person类: 复制代码 代码如下: >>> class Person: ... def sayHello(self): ... print('hello') ... >>> Person.sayHello(None) hello >>> Person().sayHello() hello 可以修改Person的类方法 复制代码 代码如下: >>> def hack_say
-
Python中实现两个字典(dict)合并的方法
本文实例讲述了Python中实现两个字典(dict)合并的方法,分享给大家供大家参考.具体方法如下: 现有两个字典dict如下: dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} 合并两个字典得到类似: {1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]} 方法1: dictMerged1=dict(dict1.items()+dict2.items())
-
python迭代器的使用方法实例
什么是迭代器? 迭代器是带有next方法的简单对象,当然也要实现__iter__函数.迭代器能在一序列的值上进行迭代,当没有可供迭代时,next方法就会引发StopIteration 的异常.python中有很多的对象都是迭代器,例如:列表,元素,字符串,文件,映射,集合 如何使用迭代器? 1. for 变量 in 可迭代对象 复制代码 代码如下: list1 = [1,2,3,4,5] for ele in list1: print ele, 结果为:1 2 3 4 5 2. if 变量
-
python迭代器实例简析
本文实例讲述了python迭代器的简单用法,分享给大家供大家参考.具体分析如下: 生成器表达式是用来生成函数调用时序列参数的一种迭代器写法 生成器对象可以遍历或转化为列表(或元组等数据结构),但不能切片(slicing).当函数的唯一的实参是可迭代序列时,便可以去掉生成器表达式两端>的圆括号,写出更优雅的代码: >>>> sum(i for i in xrange(10)) 45 sum声明: sum(iterable[, start]) Sums start and the
-
Python中bisect的用法
本文实例讲述了Python中bisect的用法,是一个比较常见的实用技巧.分享给大家供大家参考.具体分析如下: 一般来说,Python中的bisect用于操作排序的数组,比如你可以在向一个数组插入数据的同时进行排序.下面的代码演示了如何进行操作: import bisect import random random.seed(1) print('New pos contents') print('-----------------') l=[] for i in range(1,15): r=r
-
Python中unittest用法实例
本文实例讲述了Python中unittest的用法,分享给大家供大家参考.具体用法分析如下: 1. unittest module包含了编写运行unittest的功能,自定义的test class都要集成unitest.TestCase类,test method要以test开头,运行顺序根据test method的名字排序,特殊方法: ① setup():每个测试函数运行前运行 ② teardown():每个测试函数运行完后执行 ③ setUpClass():必须使用@classmethod 装
-
Python中itertools模块用法详解
本文实例讲述了Python中itertools模块用法,分享给大家供大家参考.具体分析如下: 一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. chain(iter1, iter2, ..., iterN): 给出一组迭代器(iter1, iter2, ..., iterN),此函数创建一个新迭代器来将所有的迭代器链接起来,返回的迭代器从it
-
Python中的自定义函数学习笔记
定义一个什么都不做的函数 复制代码 代码如下: >>> def a(): ... pass ... >>> def printHello(): ... print("hello") ... >>> printHello() hello >>> callable(printHello) True 顾名思义,callable函数用于判断函数是否可以调用: 有书上说,callable在Python3.0中已经不再使用,而
-
python元组操作实例解析
本文实例讲述了python元组操作方法,分享给大家供大家参考.具体分析如下: 一般来说,python的函数用法挺灵活的,和c.php的用法不太一样,和js倒是挺像的. 在照着操作时,可以发现一个很神奇的现象: >>> t = (1, 3, 'b') >>> q = t + ((3, 'abc')) >>> q (1, 3, 'b', 3, 'abc') 这里我预料的应该是(1, 3, 'b', (3, 'abc')),但是结果却是(1, 3, 'b',
随机推荐
- go语言template用法实例
- 手工注射JSP学习
- 浅析C#与C++相关概念的比较
- java如何利用FastJSON、Gson、Jackson三种Json格式工具自定义时间序列化
- python实现百度关键词排名查询
- CodeIgniter上传图片成功的全部过程分享
- Android 开发照相功能实例详解
- C语言中无符号数和有符号数之间的运算
- JavaScript实现快速排序(自已编写)
- Android实现底部弹窗效果
- Android 悬浮窗权限各机型各系统适配大全(总结)
- 基于PHP创建Cookie数组的详解
- javascript与css3动画结合使用小结
- javascript制作坦克大战全纪录(2)
- iOS中导航栏pop返回时出现黑块问题的解决方法
- 不能确定应用到此机器的组策略安全性设置的解决方法
- 浅谈java的TCP和UDP编程(附实例讲解)
- PHP使用SOAP扩展实现WebService的方法
- 深入android中The connection to adb is down的问题以及解决方法
- Java实现的剪刀石头布游戏示例