zoukankan      html  css  js  c++  java
  • 5-函数2

    四类参数

    -普通参数
    -默认参数
    -关键字参数
    -收集参数
    

    关键字参数开始

    -语法
    
    def fuc(p1=v1,p2=v2·······):
        fuc_body
        -调用函数
    fuc(p1=value1,p2=value2·····)
    

    好处:
    -这么写,不容易混淆
    -使用关键字参数,可以不考虑参数位置

    关键字参数案例

    def stu(name,age,addr):
    	print('I am a stu')
    	print('I am {0},I am {1} old, I am stay in {2}'.format(name,age,addr))
    	
    n = 'wcx'
    a = 18
    ad = '光福'
    stu(age=a, name=n, addr=ad)
        
    

    收集参数

    -把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
    -语法
    
    def fuc(*args):
        fuc_body
        -调用函数
    fuc(p1,p2,p3·····)
    
    -参数名args约定俗称
    -args前的星号代表是一个收集参数,一个星号代表list
    

    收集参数之关键字收集参数

    -语法
    
    def fuc(**kwargs):
        fuc_body
        -调用参数
    fuc(p1=v1,p2=v2·······)
    
    -参数名kwargs约定俗成
    -调用的时候,把多余的关键字参数放入kwargs
    -两个星号需要按字典格式访问
    

    -案例

    def stu(**kwargs):
    	print(type(kwargs))
    	for k,v in kwargs.items():
    		print(k,"---",v)
    stu(name='jjc', age=18, addr='苏州')
    

    收集参数混合调用的顺序问题

    -收集参数,关键字参数,普通参数可以混合使用
    -使用规则就是,普通参数,关键字参数优先
    -定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dic

    收集参数混合调用案例

    def stu(name,age,hobby="none",*args,**kwargs)
    	print("自我介绍一下,我叫{0},我{1}岁了".format(name,age))
    	if hobby=="none":
    		print("我没有爱好")
    	else:
    		print("我的爱好是{0}".format(hobby))
    	print("*" * 20)
    	for i in args:
    		print(i)
    	print("#" * 20)
    	for k,v in kwargs.items():
    		print(k,"---",v)
    
    name="jjc"
    age=18
    stu(name,age,"wcx","wxx",hobby="游泳",hobby1="dafeiji")
    

    收集参数的解包问题

    • 把参数放入list或dikt中,直接把list/dikt的值放入收集参数中
    • 语法:参看案例
    def stu(*args):
    	print("介绍一下")
    	for i in args:
    		print(i)
    l=["jjc","wcx"]
    stu(*l)
    
    #此时的调用,就需要解包符号,即调用的时候前面加星号
    #同里对dikt解包,调用时前面加两个星号
    

    返回值

    • 函数跟过程的区别
      • 有无返回值
    • 需要用return显示返回内容
    • 如果没有返回,则默认返回none

    返回值示例

    def fuc_1():
    	print("有返回值")
    	return 1
    
    def fuc_2():
    	print("没有返回值")
    	
    f1=fuc_1()
    print(f1)
    f2=fuc_2()
    print(f2)
    

    函数文档

    • 函数的文档作用就是对当前函数提供使用相关的参考信息
    • 文档的写法
      • 在函数开始的第一行使用三字符串定义符
      • 一般具有特定格式
    • 文档查看
      • 使用help函数,help(fuc)
      • 使用__doc__

    参看案例

    def stu(name,age,*args):
    	'''
            这是文档
            '''
    	print('jjc')
    help(stu)
    print(stu.__doc__)
    
  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/rener0424/p/10274735.html
Copyright © 2011-2022 走看看