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

    一、实参:为形参传递值

    调用函数时,实参可以由常量,变量,表达式三种的组合

    1、位置实参:必须按照位置的顺序,从左到右为形参传递值

             fn1(10, 20, 30)

           fn1(30, 20, 10)

    2、关键字实参:可以不按顺序传递,形参按名字 取值

        fn1(a=10, b=20, c=30)    
    fn1(c=30, b=20, a=10)
    3、两种混用:关键字实参必须出现在位置实参之后
    def fn2(a,b,c,d,e,f):
    print(a,b,c,d,e,f)
    fn2(10,20,30,e=100,f=500,d=200)
    二、形参:在函数定义中()中出现的参数
    形参就是拷贝实参的值,随着函数的调用才产生,随着函数调用结束而销毁
    1、位置形参:可以由位置实参与关键字实参来传值
    def fn(a,b,c):
    print(a,b,c)
    fn(10,20,30) #位置实参来传值
    fn(a=10,b=20,c=30) #关键字实参来传值
    2、默认形参:具有默认值,用=进行赋值
    def fn(a=10,b=20)
    print(a,b)
    注意点 1.默认形参可以由位置实参与关键字实参来传值,还可以不用传值(采用自身默认值)
    2.位置参数与默认形参同时存在时,默认形参必须在后
    3.位置形参必须传值,默认形参分情况传值
    3、变长位置形参:只能由位置实参来传值
    def fn(a,b=10,*args)
    print(a,b)
    print(args)
    可变长形参会以元组形式接受 位置形参与默认形参未接受完的所有传入的位置实参
    注意点:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,
    导致默认形参只能由位置实参来传值
    def fn(*args)
    print(args)
    fn(1,2,3,4,5) #(1,2,3,4,5)
    单列集合(包括字符串)将该变量进行打散在传值(本质传递的是地址)
    a='ab'
    b=[1,2]
    fn(*a) #('a','b')
    fn(*b) #(1,2)
    4、关键字形参:必须由关键字实参来传值,出现在*后的都是关键字形参
    def tt(a,b=10,*,c,d=10,e):
    print(a,b,c,d,e) #a位置形参,b默认形参,c和e无值关键字形参,d有值关键字形参
    #a和b有先后顺序,c,d,e无先后顺序
    5、可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值
    用字典来存放数据
    def fn(*,a,b=20,c,**kwargs):
    print(a,b)
    print(kwargs)
    fn(d=40,e=50,a=10,c=30)
    整体赋值
    dic = {'name':'owen','age':18}
    def fn1(**kwargs):
    print(kwargs)
    fn1(**dic)
    三、小结
    1、位置形参与默认形参:能用位置实参与关键字实参来传值
    2、可变长位置形参:只能位置实参来传值
    3、关键字形参:只能关键字实参传值


  • 相关阅读:
    e.target和e.event和event.srcElement
    js代码优化
    史上最全的CSS hack方式一览
    学习NodeJS第一天:node.js引言
    响应式布局
    HTML+CSS编写规范
    英文SEO外部链接资源收集之常用的footprints
    判别木马
    php简单命令代码集锦
    zencart 新页面调用好功能代码集:
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10621709.html
Copyright © 2011-2022 走看看