zoukankan      html  css  js  c++  java
  • python参数

    1.形参变量和实参

    形参变量:只有在被调用时才分配内存单元,在调用结束时,即释放所分配的内存单元,因此,形参只在函数内有效,函数调用结束返回主调用函数后则不能再使用该形参变量。

    实参:可以是常量,变量,表达式等,无论实参是何种类型的量,在进行函数调用时,它们都必须有稳定的值,因此应预先用赋值,输入等办法使参数获得稳定值。

    例:def calc(x,y):
    
                 res = x*y
    
                 return res
    
           c= calc(a,b)
    
           print(c)

    此时x和y为形参变量,a和b为实参

    2.非固定参数

    #元祖形式(*args)

    如果参数中出现*,传递的参数就不再是个固定的个体了,传过来的所有参数打包成一个元祖

    方法一:

    def   send_alarm(msg,*users):  #带*参数一般都用*args表示
    
            for  i  in users:
    
            print("报警",i)

    send_alarm("aaa","alex","gao","hong")  #此时的"alex","gao","hong"都传到了*users中

    输出为:

    报警",alex

    报警",gao

    报警",hong

    #方法二:
    send_alarm("aaa",*["alex","gaohui","hong"])  #此时的"alex","gaohui","hong"都传到了*user中

    def  alarm(msg,*user,age):
      for i in user:
      print("aaa",i)
    alarm("aaa","alex","gaohui","hong",age=22)#当位置参数在带有*参数的后面时,实参必须要用关键参数

    #元祖和字典形式

    def func(name,*args,**kwargs):
      print(name,args,kwargs)
    func("aa",1,2,3,4)#此时1,2,3,4全部属于args元祖里面
    打印结果: aa,(1,2,3,4) func("aa",1,2,3,age=23,old="bb")#此时1,2,3属于args元祖里面,age=23,old="bb"属于kwargs字典里面
    打印结果: aa,(1,2,3,4){"age"=23,"old"="bb"}
    d={"degree":"primary school"} func("aa",d)#此时d这个字典在args元祖里面
    打印结果:aa,(
    {"degree":"primary school"},)
    func("aa",**d)#此时d这个字典在kwargs字典里面
    打印结果:aa,(),{
    "degree":"primary school"}

    3.关键参数

    关键参数定义规则:

    1.关键参数不能放在位置参数前面

    print("aaa",job="python",21)此时位置参数21放在了job="python"关键参数后面,所以会报错

    2.关键参数被定义了一个量以后,不能再被定义第二个量

    print("aaa",age=23,21)此时关键参数已经给age赋过值,再赋21会报错

    正确的方式:def introduct(name,age,job,country="cn"):
    
               print("-----introduct-------")
               print(name,age,country,job)
    
          print("aaa",age=23,"job"="salary")

    4.默认参数 

    def introduct(name,age,job,country="cn")  
          print("-----introduct-------")
          print(name,age,job,country)
    
    introduct("gaohui",21,"python")
    introduct("hongyan",23,"java")
    introduct("gaohuiaa",23,"it","python1")

    此时的country就是默认参数,默认参数必须放在非默认参数后面,当你不想要参数为默认值时,可以再对应的位置写值,此时默认参数的值就会被替换。

    总结: 

    排列顺序:位置参数 关键参数 默认参数

  • 相关阅读:
    Stream概念的理解
    nodejs进程间通信
    nodejs多进程spawn execFile exec fok方法的区别
    socket这个名词的理解
    Object.defineProperty方法总结
    git中HEAD^和HEAD~区别
    http常见的9种方法
    java怎么建立JAVA工程项目?
    树莓派mjpg-stream摄像头监控
    制作OS X 10.9 Mavericks 安装U盘
  • 原文地址:https://www.cnblogs.com/huizaia/p/9015522.html
Copyright © 2011-2022 走看看