• Python ---- 关于Python中的yield


    今天看代码,突然看到了"yield",当时有点儿懵,所以赶紧去了解了一下,以下是我尝试的过程及了解后的内容。

    当我们定义一个函数体,而恰巧这个函数的结果我们也要将他用做可迭代列表来遍历,这种情况直接用return的话应该是不行的吧?(也不是不行,反正就是....很奇怪,一会儿上代码)

    上面的这两个问题用“yield”都正好解决;上代码;

    def yie_ld():
        for i in range(3):
             yield i
    
    for i in yie_ld():
         print(i)

    这样尝试着写一下就发现了他比较牛的地方了,还有很多概念性的东西我就不抄了,有很多,可以再去搜一下看看= =

    然后下面是应用到这个yield的示例:

    #!/usr/bin/python3

    import os,fnmatch def is_file_match(filename, patterns): for pattern in patterns: if fnmatch.pattern(filename,pattern) return True return False def find_specific_files(root,patterns=['*'],exclude_dirs=[]): for root,dirnames,filenames in os.walk(root): for filename in filenames: if is_file_match(filename,patterns): yield os.path.join(root,filename)
    for d in exclude_dirs: if d in dirnames: dirnames.remove(d)

    注释:这个脚本的整体功能呢就是为了让用户导入此包之后,直接使用"find_specific_files()"函数查询各种文件

    root: 目标目录

    patterns: 匹配规则,不写的话默认为通配符"*"

    exclude_dirs:要忽略的子目录

    使用详情:

    ~]# ipython3
    In [1]:  import file   (因为我这个文件的文件名叫file.py)
    In [
    2]: for item in file.find_specific_files('/root/test'): ....: print(item) /root/test/test.jpg
  • 相关阅读:
    GFS文件系统和在RedHat Linux下的配置
    FastDFS connect timed out
    大型高并发高负载网站的系统架构
    FastDFS 上传文件
    FastDFS常见命令
    FastDFS安装、配置、部署
    分布式文件系统FastDFS原理介绍
    Jenkins+Maven+Svn搭建持续集成环境持续集成和自动部署
    Java中的向上转型和向下转型
    Java中的final修饰符
  • 原文地址:https://www.cnblogs.com/k-free-bolg/p/12883086.html
Copyright © 2020-2023  润新知