Python 函数

2016-07-20  本文已影响0人  施小炜

要入Python门,先读廖雪峰。

▍函数参数如果默认

默认参数必须指向不变对象

eg. add_end(L=[])

每次调用函数,如果改变了L的内容,则下次调用时默认参数的内容就会发生变化

▍可变参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple

▍关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些可变参数在函数调用时自动组装为一个dict

▍命名关键字参数

有时候我们只接受已经限制名称的关键字参数

def limit_key_para(x, y, *, name, gender): bla bla..

如果前面已经有了一个可变参数,则不需要再加入*

def limit_change_key_para(x, y, *args, name, gender)

▍参数的顺序

参数定义的顺序为:必选参数,默认参数,可变参数,命名关键字参数,关键字参数

▍Decorator装饰器

1、访问函数对象名称:func_name.__name__

2、动态增强函数功能

def log(func):

def wrapper(*args, **kw):

print('func more %s' % func.__name___)

return func(*args, **kw)

return wrapper

@log

def now():

print('now')

以上的方法可能有麻烦,就是增加Decorator的now函数的now.__name__会是wrapper

所以需要增加functools.wraps~~

import functools

def log(func):

@functools.wraps(func)

def wrapper(*args, **kw):

print('func more %s' % func.__name___)

return func(*args, **kw)

return wrapper

▍偏函数

1、概念:将函数中的某些参数固定住(设置默认值),返回一个新函数,调用这个函数更加简单

2、示例:int(args, base=n)

上一篇下一篇

猜你喜欢

热点阅读