函数

1、定义一个函数,def 函数名(参数列表):

                                     函数体

2、python中一切都是对象,严格意义我们不能说值传递还是引用传递,应该说传递可变对象还是不可变对象;

3、参数:必须参数、默认参数、关键字参数、不定长参数;

必须参数,须以正确的顺序传入函数,调用时的数量与声明时一样。

关键字参数,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

不定长参数,基本语法如下,加了*的参数会以元祖的形式导入,存放所有未命名的变量参数。加了两个**的函数会以字典的形式导入。

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

函数声明时,参数中的*可以单独出现,单独出现*后的参数必须以关键字传入,如下

>>> def f(a,b,*,c):
...     return a+b+c
... 
>>> f(1,2,3)   # 报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() takes 2 positional arguments but 3 were given
>>> f(1,2,c=3) # 正常
6

4、匿名函数,不使用def这种标准格式来定义的一个函数,lambda 函数的语法只包含一个语句,lambda  [arg1,arg2,...argn]:expression

5、强制位置参数,/用来说明(/前的参数)函数形参必须使用指定位置参数,不能用关键字参数

在以下的例子中,形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:

def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)




原文地址:https://www.cnblogs.com/ydyang/p/14134084.html