zoukankan      html  css  js  c++  java
  • Python 函数的参数形式

    形参:在定义函数时,括号内的参数成为形参
    特点:形参就是变量名
    def foo(x,y): #x=1,y=2
    print(x)
    print(y)

    实参:在调用函数时,括号内的参数成为实参
    特点:实参就是变量值
    foo(1,2)

    在调用阶段实参(变量值)才会绑定形参(变量名)
    调用结束后,解除绑定

    一、、函数形参分为:

        1、位置形参

     2、关键字形参

    二、函数实参分为:

        1、位置实参

     2、关键字实参

    def foo(x,y): #x、y为位置形参
        print(x)
        print(y)
    foo(1,2)#位置实参
    
    def foo(name,age): #x、y为关键字形参
        print(name)
        print(age)
    foo(name=1,age=2)#位置形参

    三、注意事项

    1、位置实参必须在关键字实参的前面

    2、一定不要给同一个形参赋多次值

    四、默认参数

    不用给函数传递参数,函数的参数默认带有值

    def foo(x=1,y=2): #x、y为位置形参
        print(x)
        print(y)
    foo()

    注意事项:

    默认参数必须放在位置参数之前

    默认参数只能在函数定义阶段赋值一次,且仅有一次

    默认参数应该定义为不可变数据类型

    五、可变长参数类开

    可变长参数指的是实参的个数多了
    实参无非位置实参和关键字实参两种

    #形参必须要两种机制来分别处理按照位置定义的实参溢出的情况:*
    #跟按照关键字定义的实参溢出的情况:**

    1、形参*接收多出来的位置参数转化为无组

    2、多出来的关键字参数被**接收转化为字典

    def foo(x,y,*args): #nums=(3,4,5,6,7)
        print(x)
        print(y)
        print(args)
    
    foo(1,2,3,4,5,6,7) 
    
    def foo(x,y,**kwargs): #nums={'z':3,'b':2,'a':1}
        print(x)
        print(y)
        print(kwargs)
    foo(1,2,z=3,a=1,b=2) #**

    六 命名关键参数

    即在*后面定义的形参称为命名关键字参数,必须是被以关键字实参的形式传值

    def foo(name,age,*args,sex='male',group):
        print(name)
        print(age)
        print(args)
        print(sex)
        print(group)
    
    foo('alex',18,19,20,300,group='group1')
  • 相关阅读:
    shiro标签
    ssm项目整合shiro
    关于POI读取模板的单元格位为null,或者无法正确获取样式的简单处理方案
    为什么wait的条件放在while里面,用if就不行
    Dto中有List<DTO> children,那么如何把List<Dto>转为List<VO>
    开发踩过的坑
    POI一直不能给sheet赋值
    写给研发的需求能不能不要废话
    写着写着就不知道自己定义的方法是干嘛的了
    一个if else的问题,卡了一个小时,我也是……
  • 原文地址:https://www.cnblogs.com/liuxiaowei/p/7215600.html
Copyright © 2011-2022 走看看