前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 匿名函数赋给变量只能用一次

python 匿名函数赋给变量只能用一次

作者头像
葫芦
发布2019-04-17 14:47:17
6370
发布2019-04-17 14:47:17
举报
文章被收录于专栏:葫芦葫芦

需求:

检查目录下文件包含时间格式 YYYY-mm-dd-HH 且文件后缀不为gz的文件,当文件数等于3时返回true其他情况false。

实现:

用匿名函数实现了此功能,却意外发现了 将匿名函数赋给变量后,重复执行只能得到第一次的结果。

匿名函数赋给变量,只能用一次。以后需要避免此坑。

python3.5:

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> chk = lambda b6=(datetime.datetime.now()+datetime.timedelta(hours=-6)).strftime('%Y-%m-%d-%H'), x = [s for s in filter(lambda li: not li.endswith('gz'),os.listdir())]:'%s success' % b6 if len([z for z in x if b6 in z])==3 else '%s failure' % b6
>>>
>>>
>>>
>>> os.listdir()
['video2018-10-29-18.log', 'two2018-10-29-19.log', 'music2018-10-29-18.log', '1.txt', 'one2018-10-29-19.log']
>>> chk()
'2018-10-29-19 failure'
>>> open('./three2018-10-29-19.log','w').close()
>>> chk()
'2018-10-29-19 failure'
>>> chk = lambda b6=(datetime.datetime.now()+datetime.timedelta(hours=-6)).strftime('%Y-%m-%d-%H'), x = [s for s in filter(lambda li: not li.endswith('gz'),os.listdir())]:'%s success' % b6 if len([z for z in x if b6 in z])==3 else '%s failure' % b6
>>> chk()    
'2018-10-29-19 success'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/10/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求:
  • 检查目录下文件包含时间格式 YYYY-mm-dd-HH 且文件后缀不为gz的文件,当文件数等于3时返回true其他情况false。
    • 实现:
      • 用匿名函数实现了此功能,却意外发现了 将匿名函数赋给变量后,重复执行只能得到第一次的结果。
        • 匿名函数赋给变量,只能用一次。以后需要避免此坑。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档