python函数第5天(day 24)

可迭代的:对象下有__iter__方法的都是可迭代的对象

迭代器:对象.__iter__()得到的结果就是迭代器
迭代器的特性:
    迭代器.__next__() 取下一个值

    优点:
        1.提供了一种统一的迭代对象的方式,不依赖于索引
        2.惰性计算

    缺点:
        1.无法获取迭代器的长度
        2.一次性的,只能往后取值,不能往前退,不能像索引那样去取得某个位置的值

生成器:函数内带有yield关键字,那么这个函数执行的结果就是生成器

生成器本质就是迭代器
    def func():
        n=0
        while True:
             yield n
             n+=1

    g=func()

    res=next(g)
    res=next(g)

    for i in g:
        pass

总结yield的功能:
    1.相当于把__iter__和__next__方法封装到函数内部
    2.与return比,return只能返回一次,而yield能返回多次
    3.函数暂停已经继续运行的状态是通过yield保存的

yield的表达式形式:
    food=yield

def eater(name):
    print(‘%s start to eat‘ %name)
    while True:
        food=yield
        print(‘%s eat %s‘ %(name,food))

e=eater(‘zhejiangF4‘)

    #e.send与next(e)的区别
        #1.如果函数内yield是表达式形式,那么必须先next(e)
        #2.二者的共同之处是都可以让函数在上次暂停的位置继续运行,不一样的地方在于
            send在触发下一次代码的执行时,会顺便给yield传一个值

#协程函数的定义?
#协程函数的应用?
时间: 2024-10-12 13:50:50

python函数第5天(day 24)的相关文章

Python 五、Python函数

一.函数概述 1.函数的基础概念 函数是python为了代码最大程度地重用和最小化代码冗余而提供的基础程序结构. 函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件 函数用于将相关功能打包并参数化 在python中可以创建4种函数: 全局函数:定义在模块中 局部函数:嵌套于其它函数中 lambda(匿名)函数:仅是一个表达式 方法:与特定数据类型关联的函数,并且只能与数据类型关联一起使用 函数和过程的联系:每个Python函数都有一个返回值,默认为None,也可以使用"return

Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二部分将第一部分的示例进行扩展,展示了如何在python中调用多线程的C模块:第三部分扩展了第二部分,增加了在C模块的线程中回调python的演示. 本文所用的环境为:64位Win7 + python 3.4 x86 + vs2010 一.windows下的C语言多线程程序 windows下多线程编程

Python函数信息

Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pass 2 3 >>> a=yes 4 >>> a.func_name 5 'yes' 6 >>> 2.获取函数的flags[后面有用,先说这个] [python docs]:The following flag bits are defined for c

【Python之旅】第三篇(一):Python函数

说明: 使用函数可以使程序实现功能模块化,大大简洁我们的程序,这里主要讨论Python中函数的下列内容: 1.函数定义与函数参数 2.局部变量和全局变量 3.函数默认参数和关键参数 4.*Args和**Kargs 因为函数部分内容跟C语言中的很多内容都十分相似,所以会结合C语言来进行对比学习. 1.函数定义与函数参数 --基本格式1:不参参数 ·定义: def sayHi():     print "Hello!" ·调用: >>> sayHi() Hello --基

Python 函数的参数

1.1   函数的参数 1.1.1   位置参数 >>> def power(x, n): ...    s = 1 ...    while n > 0: ...        n = n - 1 ...        s = s * x ...    return s ... >>> >>> >>> power(5,3) 125 power(x,n),x和n就是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

python函数 - 函数的参数

http://blog.csdn.net/pipisorry/article/details/39123103 self参数 self在定义时需要定义,但是在调用时会自动传入. self的名字并不是规定死的,但是最好还是按照约定是用self.self不必非写成self,可以是任意字符. self总是指调用时的类的实例.self代表类的实例,而非类. 在继承时,传入的是哪个实例,就是那个传入的实例,而不是指定义了self的类的实例. 在描述符类中,self指的是描述符类的实例. [一篇文章让你彻底

用C语言模仿Python函数

首先得说明一点,C 语言不是函数式编程语言,要想进行完全的函数式编程,还得先写个虚拟机,然后再写个解释器才行(相当于 CPython ). 下面我们提供一个例子,说明 C 语言函数可以"适度地模仿" Python 函数. 我们有如下的 Python 程序: 1 def line_conf(a, b): 2 def line(x): 3 return a*x + b 4 return line 5 6 line1 = line_conf(1, 1) 7 line2 = line_conf

python 函数的参数的几种类型

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 默认参数 我们仍以具体的例子来说明如何定义函数的默认参数.先写一个计算x2的函数: def power(x

10分钟学会 Python 函数基础知识

一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行.Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用. 有了函数,我们可以在很大程度上减少复制及粘贴代码的次数了(相信很多人在刚开始时都有这样的体验).我们可以把相同的代码可以提炼出来做成一个函数,在需要的地方只需要调用即可.那么,这样就提高了代码的复用率了,整体代码看起来比较简练,没有那么臃肿了. 函数在Python中是最基本的程序结构,用来最大化地