Pythoner

Python装饰器,就是这么强大!

微笑、不失礼 提交于 2020-12-04 15:51:44
装饰器(Decorators)是 Python 的一个重要部分。简单地说:它们是修改其他函数的功能的函数。有助于让我们的代码更简短,也更Pythonic(Python范儿)。很多Pythoner不知道在哪儿使用它们,哪些区域里装饰器可以让代码更简洁。通过本文的学习让你理解并学会装饰器,让你更Pythonic!来一起学习吧。 1. 装饰器的定义 就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数。装饰器的功能特点: 1、不修改已有函数的源代码 2、不修改已有函数的调用方式 3、给已有函数增加额外的功能 4、闭包和装饰器的区分: 如果闭包函数的参数有且只有一个,并且是函数类型,那么这个闭包函数称之为装饰器。写代码要遵循开放封闭原则,它规定已经实现的功能代码不允许被修改,但可以被扩展。 2. 装饰器的示例代码 # 定义装饰器 def decorator(func): def inner(): # 在内部函数里面对已有函数进行装饰 print('已添加登录认证') func() return inner def comment(): print('发表评论') # 调用装饰器对已有函数进行装饰,左边的comment=inner comment = decorator(comment) # 调用方式不变 comment() 3. 装饰器的语法糖写法

Python 判断变量是否是 None 的三种写法

南笙酒味 提交于 2020-02-26 07:37:27
代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是 if x is None ; 第二种是 if not x: ; 第三种是 if not x is None (这句这样理解更清晰 if not (x is None) ) 。 如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码: 在学习过程中有什么不懂得可以加我的 python学习交流扣扣qun,784758214 群里有不错的学习视频教程、开发工具与电子书籍。 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容 >>> x = 1 >>> not x False >>> x = [1] >>> not x False >>> x = 0 >>> not x True >>> x = [0] # You don't want to fall in this one. >>> not x False 在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即: 代码如下: not None == not False == not '' == not 0 == not [] == not {} == not () 因此在使用列表的时候,如果你想区分x==[]和x==None两种情况的话,