当前位置: 首页 > 后端技术 > Python

GoodProgrammerPython培训分享Python装饰器的写法

时间:2023-03-25 21:22:05 Python

GoodProgrammerPython培训分享Python装饰器的编写方法,今天,程序员好老师给大家带来的是Python装饰器的知识!Python装饰器非常易于使用。任何可以编写Python函数的人都可以学习使用装饰器,就像这个:但是编写装饰器是完全不同的技能。因此,您首先需要了解以下内容:闭包如何将函数作为“一流”参数,使用可变参数参数解包,甚至是Python如何加载源代码的一些细节编写装饰器最重要的好处是什么?在你的日常开发中,装饰器让你做什么既简单又强大?1.分析、记录和引导。特别是在大型软件中,我们通常需要专门测试发生了什么,并记录量化不同行为的指标。通过将这些重要的事件封装在装饰器内部的函数或方法中,这个装饰器可以很容易地理解和处理刚才提到的需求。比如:可以用什么方法来统计或者其他指标。2.验证和运行时检查Python的类型系统相当类型化,但也非常动态。尽管有它的所有好处,但它也意味着某些错误可能会潜入,而这些错误可能会在编译时被更多类型的语言(例如Java)捕获。即使从长远来看,您也可能需要在数据进出时执行更复杂、个性化的检查。装饰器使您可以轻松处理所有这些并将其同时应用于许多功能。假设:你有一堆函数,每个函数都返回一个字典,其中包含一个名为“summary”的字段。该字段的值长度不能超过80个字符;如果违反了,那就错了。这里有一个装饰器可以在条件不满足时抛出值错误(ValueError),如下所示:3.创建一个框架一旦你掌握了装饰器的编程,你将能够从使用装饰器的简单语法中获益,这使您可以向代码添加语义,使其更易于使用。这是可以扩展Python自身语法的次佳选择。事实上,许多流行的开源框架都使用装饰器。Web应用程序框架Flask使用装饰器将URL路由到处理HTTPS请求的函数。在这里,您有一个名为app的全局对象,它有一个名为route的方法,该方法采用特定参数。此路由方法返回一个应用于处理程序函数的装饰器。在这个“面具”下发生了一些非常复杂的事情,但从Flask用户的角度来看,所有这些复杂性都被完全隐藏了。以这种方式使用装饰器也反映在标准Python中。例如,完全使用对象系统取决于@classmethod和@property装饰器:这个类有3个不同的定义声明。但是,它们的语义不同。1:constructor是一个普通的方法2:for_winter是一个类方法,提供了类似“workshop”的东西3:progess是一个只读的动态属性对于日常生活来说,@classmethod和@property这两个装饰器就是这么简单所以Python的对象语义可以轻松扩展。提升你的职业生涯编写装饰器一开始并不容易。这不像火箭科学,但它需要您付出大量努力才能弄清楚其中的细微差别。学习装饰器确实会给你带来优势。当你是团队中理解并能够编写好的装饰器的人,并且你编写的装饰器解决了一些实际问题时,其他开发人员就会使用你的装饰器。因为,一旦完成了编写这些装饰器的困难部分,装饰器就很容易使用了。这对您编写的代码有巨大的积极影响。这也使你成为重要人物。最后,如果你通过自学对Python相关的知识点还是一知半解的话。