Python 装饰器

本文是我在学习时的篇笔记,示例代码可能岑在直接引用学习资料的情况。
在看了解Python装饰器之前最好先了解一下Python闭包

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
装饰器可以对一个函数、方法或者类进行加工。
'''
from paramiko.ssh_gss import decoder

'''
先定义两个简单的数学函数,一个用来计算平方和,一个用来计算平方差:
'''
# get square sum
def square_sum(a, b):
    return a**2 + b**2

# get square diff
def square_diff(a, b):
    return a**2 - b**2

# if __name__ == "__main__":
#   print square_sum(3, 4)
#   print square_diff(3, 4)

'''
  使用装饰器实现每次调函数,都打印函数的入参。
'''
def decorator(F):
  def new_F(a, b):
    print "input:  ", a, b
    return F(a, b)
  return new_F
'''
  上述修饰器看起来像一个闭包的形式。
  我们实际上将square_sum或square_diff传递给decorator,并将decorator
返回的新的可调用对象赋给原来的函数名(square_sum或square_diff)。
'''
# if __name__ == "__main__":
#   f = decorator(square_diff)
#   ret = f(10,5)
#   print ret
'''
('input:  ', 10, 5)
75
'''

'''
 下面直接使用修饰符修饰函数,我们创建一个求乘积的函数,并用修饰器修饰
'''
@decorator
def product(x,y):
  return x*y

if __name__ == "__main__":
  ret = product(4,5)
  print ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值