码迷,mamicode.com
首页 > 其他好文 > 详细

函数参数详解

时间:2019-11-10 19:01:04      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:函数式   **kwargs   style   可变长参数   定义   一致性   位置   过程   注意   

1.概述

编程方式:面向对象&面向过程   函数式编程 面向过程一般没有返回值   例如:c 面向过程 就是执行上下文 没有返回值

函数定义:就是封装好的功能  关键字 def

函数的优点: 优化代码  避免重复,方便修改  通用功能的调用    可重用  一致性  可扩展

2. 函数参数详解(形参,实参),(有参函数,无参函数,空函数),(位置参数,关键字参数,默认参数)  (  可变长参数)

1.(形参,实参)   

形参:是在函数定义阶段就规定的参数,它就相当于定义变量时的变量名

实参:是在函数调用阶段传入的参数,它相当于定义变量时的变量值

2.(有参函数,无参函数,空函数)

    1、无参函数:
        def index():
            print(ok)
    2、空函数:
        def login():
            pass
    3、有参函数:
        def login(username):
            print(username)

3. 传参方式:(位置参数,关键字参数,默认参数,可变长参数)

#  传参方式:位置参数     注意:位置参数必须放在关键字参数前面
def check_bigger(a,b):
    if a > b:
        return a
    else:
        return b
s = check_bigger(1,3)   #位置参数
print(s)
s1 = check_bigger(b=1,a=3) # 关键字参数
print(s1)
s2 = check_bigger(1,b=3)  # 位置参数必须放在关键字参数前面
print(s2)
#  默认参数
def check_bigger1(a,b=3):
    if a > b:
        return a
    else:
        return b
s3 = check_bigger1(4)
print(s3)

4.可变长参数  

# *args: 接收所有溢出的位置参数,接收的值都被存入一个元组
# **kwargs:接收所有溢出的关键字参数,接收的值都被存入一个字典
# *:打散传入容器类型

# ###*args:接收所有溢出的位置参数,接收的值都被存入一个元组
def func(a,b,*args):
    print(a,b,args[0],args)  #args为元组
func(1,2,3,4,5,6)

###**kwargs: 接收所有溢出的关键字,接收的值被存入字典
def func(a,b,*args,**kwargs):
    print(a,b,args[0],kwargs)  #kwargs为字典
func(1,2,3,4,5,6,c=6)

### *: 将实参打散传入函数   注意 * 与 *args **kwargs 没有关系
def func(a,b,c,d,e):
    print(a,b,c,d,e)
func(1,2,3,*(4,5))

 

                            

   

 

 

函数参数详解

标签:函数式   **kwargs   style   可变长参数   定义   一致性   位置   过程   注意   

原文地址:https://www.cnblogs.com/bigbox/p/11831159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!