Python 7+ @装饰器:优雅编程新体验
一、学前花絮学习深入后, 我们知晓, 因全世界社区贡献, 不断增添新功能、新模块, 使其在各个领域展现出独特风采, 过程层层递进, 原因相互关联, 结果显著突出。先比如说在我们学习类class之时, 第一步要做些什么呢, 要去写()方法, 以此来初始化类以及实例变量, 而这些变量是意在自定义方法或者实例化之后加以使用的, 然而在.7版本往后, 我们这一步工作能够省略掉了, 能够直接去关注业务逻辑, 对于数据变量借助装饰器达成即可。二、.7中的装饰器2.1 是什么是一种类装饰器, 它借助对类里所定义的带有类型注解的字段予以分析, 进而自动生成如下方法, 此为默认开启状态:()初始化实例()友好的字符串表示用于 print()()支持 比较你只需声明“这个类有哪些数据”其余交给 不用的代码我们在进行自定义类操作时, 一般要自行撰写 init 方法来对变量予以初始化为迎合输出以及比较便捷的需求, 也得去编写 repr、eq 等方法。然而一旦运用了 , 这些相关工作均可省略掉2.用的代码上面的代码跟之前的代码是全然等价的, 我们能够瞧见其优雅之处了。在我们运用了类装饰器之际, 我们仅仅需要留意变量的类型就行, 而初始化init等方法均可省略掉了。2.2 用户只需关心“自定义方法” 的核心思想是数据结构由装饰器处理业务逻辑由你实现。比如, 你打算给 User 类增添 一个“打招呼”的方法, 以及一个用于判断年龄的方法:调用上面的方法输出结果关键要点在于, 你无需去操心像 self.name name 这般缺乏灵活性的赋值操作了, 只需全神贯注地去编写类似于 greet() 这种与业务紧密相关的方法就行。2.3 高级用法不可变对象 默认值 还支持更多实用配置1. 创建不可变对象类似 以上所列举的例子当中, 鉴于存在这样一个参数, 致使类里面Point的变量于可修改方面受到限制, 在程序运行期间于修改变量之际, 将会出现报错的情况这属于一种对变量予以保护的方式。2. 设置默认值在上述所列举的例子当中, 不但达成了数量极少的代码编写, 并且还针对变量进行了默认值的设定。需要留意的是, 那些具备默认值的字段, 是一定要放置在没有默认值的字段的后面的2.4 对比传统写法为什么推荐 通过与传统写法相比用类装饰器的好处可见。2.5 以上内容的总结三、小结针对本篇章内容来讲, 其侧重点在于实用, 不存在太多难以理解之处, 主要是就版本的发展而言, 有更多好用的装饰器可供拿来使用, 从而让我们更能体会到那份优雅让我们保持学习热情多做练习。我们下期再见快乐男孩。