码迷,mamicode.com
首页 > 编程语言 > 详细

python装饰器和函数传参

时间:2019-08-20 18:52:23      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:ict   on()   friend   The   *args   int   pre   test   type   

函数的参数

  • 位置参数
def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

power(x, n)函数有两个参数:xn,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋值给参数xn

  • 默认参数
def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

power(x, n)函数有两个参数:xn,如果想在不传入n值时,默认计算x的平方,此时可以将n设为默认值2。

  • 可变参数(*args)
def function(f_arg, *args):
    print f_arg, type(f_arg)
    print args, type(args)
nums = ['a','b','c']
function(1,2,*nums)

定义可变参数时,需要在参数前面加一个*号,可变参数的个数是可变的。在函数内部,参数*args接收到的是一个tuple。输出结果如下:

1 <type 'int'>
(2, 'a', 'b', 'c') <type 'tuple'>
  • 关键字参数(**kwargs)
def person(name,age,**kwargs):
    print 'name:',name,'age:',age,'other:',kwargs,type(kwargs)

person('mark',30,city='shanghai')

**kwargs允许将不定长度的键值对,作为参数传递给一个函数,关键字参数在函数内部自动组装为一个dict。输出结果如下:

name: mark age: 30 other: {'city': 'shanghai'} <type 'dict'>
  • 将函数作为参数传递给另一个函数
def hi():
    return 'hi friends'

def function(func):
    print 'just test'
    print func()

function(hi)

function()函数将hi函数作为参数接收,输出结果如下:

just test
hi friends

装饰器

装饰器是一个返回函数的高阶函数。

装饰器常见用法:

  1. 打印日志
  2. 计算时间
  3. 带参数的函数装饰器
  4. 不带参数的类装饰器
  5. 带参数的类装饰器

python装饰器和函数传参

标签:ict   on()   friend   The   *args   int   pre   test   type   

原文地址:https://www.cnblogs.com/mark-zh/p/11384546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!