Python的函数

什么是函数

  函数就是对具有一定功能的代码块的封装,实现对代码的复用。

定义函数的规则

1.定义:def 关键词开头,空格之后接函数名称和圆括号()。
2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。
    参数可以定义多个,也可以不定义。
    参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。
    如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序
3.注释:函数的第一行语句应该添加注释。
4.函数体:函数内容以冒号起始,并且缩进。
5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None

def 函数名(参数1,参数2,*args,默认参数,**kwargs):
        """注释:函数功能和参数说明"""
        函数体
        ……
        return 返回值

函数的参数  

  定义函数的时候,我们将函数的参数名字和位置确定下来,函数的接口定义就完成了,在使用参数时,除了必选参数外,我们还可以使用默认参数、可变参数和关键字参数,是函数可以处理各种传入的数据。

  一、位置参数

   1.通过位置进行传参

1 def mymax(x, y):
2     the_max = x if x > y else y
3     return the_max
4 
5 m = mymax(10,20)
6 print(m)

  2.按照关键字传参

1 def mymax(x, y):
2     the_max = x if x > y else y
3     return the_max
4 
5 m = mymax(y=20, x=10)
6 print(m)

  3.未知参数和关键字参数混用

  *** 未知参数必须在关键字参数前面

  *** 一个形参只能赋值一次

1 def mymax(x, y):
2     the_max = x if x > y else y
3     return the_max
4 
5 m = mymax(10, y=20)
6 print(m)

  二、默认参数

  ***** 注意!

1 def defult_param(a,l = []):
2     l.append(a)
3     print(l)
4 
5 defult_param('alex')
6 defult_param('egon')

['alex']
['alex', 'egon']

  三、动态参数

  1.按位置的动态传参  *args

1 def mysum(*args):
2     the_sum = 0
3     for i in args:
4         the_sum+=i
5     return the_sum
6 
7 the_sum = mysum(1,2,3,4)
8 print(the_sum)

  2.按关键字的动态传参  **kwargs

1 def stu_info(**kwargs):
2     print(kwargs)
3     print(kwargs['name'], kwargs['sex'])
4 
5 stu_info(name = 'alex',sex = 'male')

 四 、动态参数的聚合与打散

  在形参前的*表示吧接收到的位置参数聚合成一个元组,**表示把接收到的关键字参数聚合成一个字典,而在实参前*表示把字符串、列表、元组等可迭代对象打散,**表示把字典打散。

原文地址:https://www.cnblogs.com/heshike/p/9451531.html