zoukankan      html  css  js  c++  java
  • python 函数参数类型

    1:无参数

    2:多个参数

    3:默认参数

    4:指定参数

    5:动态参数

    前两个就不说了,默认参数就是在参数后面给定默认值:

    用处:由于python 在指定形参时是不需要指定类型的,但是有时候我们在函数内部需要用到

    参数类型的方法,怎么办呢,那就再参数后面加上默认值,再使用的时候就可以使用该类型的方法了

    # def show3(a1,a2=222):
    #     print(a1,a2)
    #

    指定参数:也就是在传递实参的时候写出形参

    # #也就是show(a2=111,a1=222)就是指定参数
    # def show(a1,a2):
    #     print(a1,a2)

    动态参数:

    动态参数有两种 一个是*args 另一个是**args

    那么这两个有什么区别呢:

    *args把给定的参数封装成一个列表(list)

    而**kwargs 则是把给定的参数封装成一个字典

    而且在给定实参的时候,*arg无需加上形参,

    而**kwargs则要指定形参和实参,

    # *arg
    # def show(*args):
    #     print(args,type(args))
    #
    # show('djkdj','jdkal') #就是将你输入的多个参数转换成一个参数是元组类型的
    
    
    # **arg
    # 把传入的参数转换成一个字典也就是需要在传入参数时需要指定参数的名称;
    
    # def show(**kwargs):
    #     print(kwargs,type(kwargs))
    # show(n1=11,n3=22)
    
    #还可以两个一起使用:功能更加的强大:会把无参数名臣的封装成一个tuple 把有参数名称的封装成一个字典;并且,arg必须在**kwargs前面
    # def show(*args ,**kwargs):
    #     print(args,kwargs)
    # show(11,22,33,nn=22,kk=33)
    
    
    

    如果两个一起用能实现强大的功能;

    值得注意的是虽然*args和**kwargs会把我们给他的参数封装成列表和字典,但是如果我们在给定实际参数的时候给的是一个列表或者是字典,只是表示只有一个实参,而不是列表和字典里面的值;如果想要实现这个功能,那么我们就需要在列表或者字典前面加上*或者**就能实现了;

    他的一些应用:字符串的格式化

    # s1 = '{0} is {1}'
    # # s2 = s1.format('bluesli','2b')#我们页可以不一个个传入参数;还可以直接传入一个列表只需要加上一个*好
    # # l = ('bluesli','2b')
    # # s2 = s1.format(*l)
    # s3 = '{name} is {acter}'
    #
    # k = {'name':'kkk','acter':'ll'}
    # # s3 = s3.format(**k)
    # s3 = s3.format(name='kk',acter='bb')
    # print(s3)
    
  • 相关阅读:
    gitlab使用
    小程序顶部导航栏标题不居中
    mpvue中使用vant-weapp
    原生js实现轮播图
    vue无法检测数组的变动
    vue报错TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function
    vue绑定style使用需要添加浏览器引擎前缀的 CSS 属性
    《孙子算经》之"物不知数"题:中国剩余定理
    Java大数处理类:BigInteger类和BigDecimal类
    【转】操作系统典型调度算法
  • 原文地址:https://www.cnblogs.com/bluesl/p/9079615.html
Copyright © 2011-2022 走看看