首页 > 编程语言 > 详细

Python函数(十)-装饰器(三)

时间:2018-02-02 21:30:18      阅读:274      评论:0      收藏:0      [点我收藏+]

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

# -*- 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函数(十)-装饰器(三)

原文:https://www.cnblogs.com/sch01ar/p/8406868.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!