python学习笔记之--函数

2022-01-08  本文已影响0人  itsenlin

概念

函数:一组单独的代码逻辑块,可以有输入(称为参数),可以有输出(称为返回值)
过程:在python中等同于函数
方法:就是类中的函数

函数定义方法

def func_name(arglist):
    ''' func_doc'''
    func_suit

说明:

函数参数

参数传递

类似C/C++语言,python语言函数参数传递分为两种

默认参数

与其他高级语言类似,python也有默认参数特性,即在定义函数时,可以对右边参数赋值,如果调用时不传入对应位置的参数,则使用默认值

>>> def foo(a, b, c = 10):
...     print(a, b, c)
... 
>>> foo(1, 2)
1 2 10
>>> foo(1, 2, 3)
1 2 3
>>>

关键字参数

python语言此特性很有意思,可以在调用函数时,指定形参的名字进行赋值,这样参数的顺序可以不按形参的顺序来,如下

>>> def foo(a, b):
...     print("a = " + str(a) + ", b = " + str(b))
... 
>>> foo(b=1, a=2)
a = 2, b = 1
>>>

不定长参数

类似print函数,可以接收n个参数,n>=0
python语言通过元组和字典两种方式来实现

lambda

python语言允许用lambda关键字创建匿名函数,定义如下

lambda [arg1, [arg2, ... argN]]: expression

只有参数和函数体,没有函数名,所以也叫匿名函数
根据前面介绍,这种lambda函数可以赋值给一个变量,通过变量来调用,如下

>>> true = lambda :True
>>> type(true)
<class 'function'>
>>> true()
True
>>> add = lambda x, y: x+y
>>> add(1, 2)
3
>>>

闭包

在python语言中,函数可以嵌套定义,也即可以在一个函数中再定义另外一个函数(称为内部函数),如下

>>> def foo():
...     def bar():
...         print("foo.bar")
...     bar()
... 
>>> foo()
foo.bar
>>>

闭包:如果在一个内部函数里,对在外部作用域(非全局,如在外部函数中定义的)变量进行引用,那么这个内部函数就被称为闭包,如下

>>> def counter(start=0):
...     count = [start]
...     def inner():
...         count[0] += 1
...         return count[0]
...     return inner
... 
>>> c = counter()
>>> c()
1
>>> c()
2
>>>
上一篇 下一篇

猜你喜欢

热点阅读