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

    函数参数分哪几种:

    1.普通参数普通参数的形式参数和实际参数是从左往右依次对应的。

    #def send(xxoo,ffff,):#这里是形式参数
    # print("xxoo","ffff")
    # return True
    #send("ddc","sb")#这里是实际参数 #这是普通参数


    2.默认 参数,默认参数就是在形式参数的位置设定一个实际的值如yyy=ok 这样如果实际参数上传两个值那第三个就是ok,如果上传三个值那就是上传的值,默认参数必须在所有形式参数的最后。
    #def send (xxoo,hhh,yyy="ok"):#这里是形式参数
    # print(xxoo,hhh,yyy)
    # return True
    #send("dd","sb")
    #send("xx","cc","oo")#这里是实际参数 #这是默认参数实现


    3.指定参数 指定参数就是吧实际参数指向某个形式参数。
    #def send (xxoo,ffff):#形式参数
    # print(xxoo,ffff)
    # return True
    #send(ffff="llll",xxoo="jjjjjjj") #实际参数 #这是指定参数

    4.*动态参数
    #def f1 (*args):#一个星的默认是一个元组
    # ang=(11)
    # ang=([*11,22,])
    # print(ang)# 动态参数形式参数带星星的可以实际参数可以输入n个值。。实际参数带星号这表示吧实际参数的每一个值拿出来加到一个元组里,如果不带*表示吧实际参数当成一个元素加到一个元组里。
    def f1(*args):
        print(args,type(args))
    
    l=[1,2,3,4,5,6,"lll"]
    f1(l)#实际参数加星与不加星的区别
    f1(*l)
    输出:

    ([1, 2, 3, 4, 5, 6, 'lll'],) <class 'tuple'>
    (1, 2, 3, 4, 5, 6, 'lll') <class 'tuple'>


    5.**动态参数
    #def send (**kwargs):#两个星默认是一个字典
    # print(kwargs,type(kwargs))

    #send(ffff="llll",xxoo="jjjjjjj")或
     send(**"llll","jjjjjjj")
    def f1(**kwargs):
        print(kwargs,type(kwargs))
    
    l={"k1":2,"k3":4}
    f1(n1=2,n3=4)#如果传参数是这样就表示吧这个做为一个键值对传给一个列表
    f1(kk=l)
    f1(**l)#如果是这样就表示直接把这个字典赋值给**kwargs
    执行结果:

    {'n3': 4, 'n1': 2} <class 'dict'>
    {'kk': {'k3': 4, 'k1': 2}} <class 'dict'>
    {'k3': 4, 'k1': 2} <class 'dict'>



    6.万能参数(其实就是动态参数)
    def f1(*args,**kwargs):
        print(kwargs,type(kwargs))
        print(args)
    
    f1(1,2,3,4,5,6,k1=15,k2=16)
    执行结果:
    def f1(*args,**kwargs):
    print(kwargs,type(kwargs))
    print(args)

    f1(1,2,3,4,5,6,k1=15,k2=16)
    #def send (*args,**kwargs):#万能参数,一个星加俩星
    #send(11,11,22,33,k1="123",k2="456")

    #s="name {0} age{1}".format("erfei",22)
    #print(s)
    #s1="name {0} age{1}".format(*["erfei",22])
    #print(s1)

    dic={"name":"erfei" , "age":18}
    s1="i im {name} , age{age}".format(**dic)
    print(s1)
    万能参数能接受两种类型数据
    m=["erfei",18]
    l="我叫{}今年{}岁".format("erfei",18)
    k="我叫{}今年{}岁".format(*m)#这个跟上面的其实一样
    print(l,k)
    
    hhh="我叫{name}今年{age}岁".format(name="erefi",age=18)#参数只能这样传
    kkk={"name":"erfei","age":18}
    
    yyy=l="我叫{name}今年{age}岁".format(**kkk)#还可以这么干
    
    
    print(hhh,yyy)


  • 相关阅读:
    C#项目间循环引用的解决办法,有图有真相
    打破关注自己的门
    引用AForge.video.ffmpeg,打开时会报错:找不到指定的模块,需要把发行包第三方文件externalsffmpegin里的dll文件拷到windows的system32文件夹下。
    Gs_Class.Gs_DataFunction数据操作类库20160225
    Gs_Class._BaseQueryWeb查询页面基类(aspx.net)
    关于开钱箱(不是用螺丝刀子开)
    处理模糊查询时读取url地址参数变化的情况
    jeecg单步调试
    jeecg安装——mysql数据库创建+手动执行初始化脚本
    小程序动画效果
  • 原文地址:https://www.cnblogs.com/zang963469010/p/5902947.html
Copyright © 2011-2022 走看看