Python 函数

要入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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确...
    齐天大圣李圣杰阅读 1,561评论 0 2
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,741评论 0 5
  • https://my.oschina.net/leejun2005/blog/503562 深入浅出 Python...
    点点渔火阅读 1,041评论 0 1
  • 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:a = ab...
    bjchenli阅读 635评论 0 0
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 361评论 0 0