python函数装饰器

python函数装饰器,第1张

概述装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。首先,让我们讨论下如何写你自己的装

装饰器(Decorators)

是 Python 的一个重要部分。

简单地说:他们是修改其他函数的功能的函数。

他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。

大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。

首先,让我们讨论下如何写你自己的装饰器。

这可能是最难掌握的概念之一。

我们会每次只讨论一个步骤,这样你能完全理解它。

1.一切皆对象

def func(name='duoceshi'):    return 'hello' + nameprint(func())输出:hello duoceshi#将函数传递给一个变量variable = funcprint(variable) 输出: <function func at 0x000001DD9F7E7048> #函数对象print(variable()) #带括号打印输出:hello duoceshidel funcprint(func)输出:nameError: name 'func' is not definedprint(variable())输出:hello duoceshi

2.在函数中定义函数

def func():        print('welcome to 多测师')        def func1():                 print('welcome to 深圳多测师')        def func2():                print('welcome to 广州多测师')        func1()    func2()func()输出:welcome to 多测师welcome to 深圳多测师welcome to 广州多测师#无论何时调用func(),func1()和func2()都会被调用#func1()与func2()在func()函数外是不会被调用的func1()输出:nameError: name 'func1' is not defined

3.从函数中返回函数

def func(name='多测师'):        return 'welcome to 多测师'        def func1():                 return 'welcome to 深圳多测师'        def func2():                return 'welcome to 广州多测师'        if name == '多测师':        return func1                else:        return func2variable = func()print(variable)输出:<function func.<locals>.func1 at 0x00000157A166CD08>print(variable())输出:welcome to 深圳多测师

4.讲函数做为参数传给另一个函数

def func():    return 'welcome to 多测师'def func1(name):    print('welcome to 深圳多测师')    print(name())func1(func)输出:welcome to 深圳多测师welcome to 多测师

5.创建一个装饰器

def func(name):    def func1():        name()        print('我是函数的新功能')    return func1def function():    print('welcome to 多测师')#直接调用第二个函数# function()#输出:# welcome to 多测师#传统调用方法variable = func(function)variable()输出:welcome to 多测师我是函数的新功能

6.使用@符调用装饰器

def func(name):    def func1():        name()        print('我是函数的新功能')    return func1@funcdef function():    print('welcome to 多测师')function()输出:welcome to 多测师我是函数的新功能

 

总结

以上是内存溢出为你收集整理的python函数装饰器全部内容,希望文章能够帮你解决python函数装饰器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存