装饰器

#其实也是个函数    返回值也是个函数
#用途:不修改原来函数代码的前提下增加一些业务代码
#不能修改核心业务
#say的装饰器
# def outSay(f):#f是被装饰的函数的名字
#     #返回函数
#     def inner():
#         print("*************")
#         f() #核心代码
#     def inner2():
#         print("---------")
#         f()
#     def inner3():
#         print("&&&&&")
#         f()
#     return inner3
# @outSay
# def say():
#     print("hello")
#
# say()

"装饰器   "
def outSum(f):                      #f 存放 sum函数名
    def inner(a, b):                #inner返回函数 ab 存取num1 num2 的参量
        print("欢迎来到加法大法")    #修饰内容
        f(a, b)                     # sum 执行函数
    return inner                    #选择返回函数   函数名 
@outSum   #增加装饰器
def sum(num1, num2):
    print(num1 + num2)
sum(1,2)

控制台输结果   
  欢迎来到加法大法
3

"不定长参数"
def outSum(f):                      #f 存放 sum函数名
    def inner(*num):                #inner返回函数 ab 存取num1 num2 的参量
        print("欢迎来到加法大法")      #修饰内容
        f(*num)                     # sum 执行函数
    return inner                    #选择返回函数   函数名
@outSum                             #增加装饰器
def sum(*num):
    print(num[0] + num[1])
sum(1, 2)

控制台输结果   
  欢迎来到加法大法






例子 :
def outDenglu(f):
    def inner():
        print("""
        ???????????????? ????????????????
                        欢迎来到登陆系统  
        ???????????????? ????????????????
        """)
        f()
    return inner

@outDenglu
def denglu():       # 登陆系统
    panduan = True
    name = input("请输入用户名")
    word = input("请输入密码")
    while panduan:
        if name == "admin" and word == "123":
            print("登陆成功")
            panduan = False
        else:
            print("密码错误,请重新输入")
denglu()

控制台输出结果

        ???????????????? ????????????????
                        欢迎来到登陆系统  
        ???????????????? ????????????????

请输入用户名admin
请输入密码123
登陆成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值