zoukankan      html  css  js  c++  java
  • 函数的使用

    函数的使用分为定义阶段与调用阶段,定义函数时中只检测语法,不执行函数体代码,函数名加括号即函数的调用,只有调用函数时才会执行函数体代码

    1.函数调用与返回值

    return 是一个函数结束的标志,函数内可以有多个return,但只执行一次函数就结束了,并把return后定义
    的值作为本次调用的结果返回
    

    形参的顺序:位置形参,默认形参,args,命名关键字形参,**kwargs 实参的顺序与形参对应,顺序也是相同 位置>默认>>关键>**

    1.1可变长度的位置参数

    如果最后一个形参名前加*号,那么在调用函数时,溢出的位置实参,都会被接收,以元组的形式保存下来赋值组该形参。

    def foo(x,y,z=1,*args):
    	print(x)
    	print(y)
    	print(z)
    	print(args)
    foo(1,2,3,4,5,6,7,8)    
    1
    2
    3   #默认参数被赋值3
    (4,5,6,7,8)  #多余的位置实参4,5,6,7,8被*接收,赋值组args,得到args=(4,5,6,7,8)
    

    1.2可变长度的关键字参数

    如果在最后一个形参名前加**号,那么在调用函数时,溢出的关键字参数,都会被接收,以字典的形式保存下来赋值组该形参。

    def foo(x,**kwargs):
    	print(x)
    	print(kwargs)
    
    foo(y=2,x=1,z=3)
    1
    {'z':3,'y':2}
    
    • 可以用在实参中,实参中带*,先将*后的值打散成位置实参
    def func(x,y,z):
    	print(x,y,z)
    func(*[11,22,33])   #打散成 func(11,22,33)
    >>>11 22  33
    
    • 可以用在实参中(后跟的只能是字典),实参中带,先将后的内容打散成关键字实参
    def func(x,y,z):
    	print(x,y,z)
    
    func(**{'x':1,'y':2,'z':3})  #这里会先将**后的字典打散成关键字实参,这里打散成的关键字实参必须与形参中的个数相同,多一个不行,少一个也不行
    1  2  3
    
    
    • 和 **都可以放在形参中,也可以放在实参中,在混用的时候,args必须在**kwargs之前
    def func(*args,**kwargs): #*args对应的实参中的位置实参,**kwargs对应实参中的关键字参实参
    	print(args)
    	print(kwargs)
    func(1,2,3,4,5,x=1,y=2,z=3)
    

    2.命名关键字参数(了解)

  • 相关阅读:
    linux中inittab文件详解
    Linux的 test 命令使用
    程序的链接和装入及Linux下动态链接的实现
    linux虚拟内存管理简要总结
    一些vim技巧和经验
    Linux cp mv rm ln 命令对于 inode 和 dentry 的影响
    Linux C编程一站式学习
    虚拟内存管理
    为何cp覆盖进程的动态库(so)会导致coredump
    linux下So覆盖导致coredump问题的分析
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14350844.html
Copyright © 2011-2022 走看看