Python函数-装饰器

Posted Sch01aR#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数-装饰器相关的知识,希望对你有一定的参考价值。

如果多个函数想通过一个装饰器来实现不同的功能的话,可以给装饰器传入参数,让装饰器里的函数对参数进行判断,来实现不同的功能

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

def deco(info_type):
    def outer(func): #这在传入参数名
        def inner(*args,**kwargs):
            if info_type == \'name\': #对装饰器的参数进行判断
                func(*args, **kwargs)
                name_info = input("your name:")
                print("your name is %s"%name_info)
            if info_type == \'age\':
                func(*args, **kwargs)
                age_info = input("your age:")
                print("your age is %s"%age_info)
        return inner
    return outer

@deco(info_type=\'name\') #给装饰器传参数
def name():
    print("input your name")

@deco(info_type=\'age\')
def age():
    print("input your age")

if __name__ == \'__main__\':
    name()
    age()

运行结果

 

以上是关于Python函数-装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python 装饰器

[TimLinux] Python 装饰器

python装饰器

python函数装饰器

Python装饰器

python装饰器