鱼C论坛

 找回密码
 立即注册
查看: 1529|回复: 0

[技术交流] 18 函数 灵活即强大

[复制链接]
发表于 2017-8-11 18:33:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 keliyuan 于 2017-8-15 17:41 编辑

本期主要内容导读:
        这一期我们归纳一下鱼神第十八讲“函数:灵活即强大”。这一期主要是介绍了Python中灵活多变的函数定义和调用过程,主要涉及到了函数的形参和实参含义,用于注释函数功能和参数意义的函数文档相关概念,关键字参数,默认参数和收集参数。下面我们就来详细介绍一下各个知识点吧~~~~~~
1. 函数的形参和实参含义
  形式参数  parameter  ,实际参数argument
        函数的形参英文名为parameter,是在函数定义时的设置的参数,一般而言就是一个变量名,不需要赋初值,而是来接受在函数调用过程中传递过来的参数值;而实参argument是在函数调用时输入的参数,一般是一个确定的值,用来传递给形参。举例说明:

  1. def fuction1(parameter1):
  2.         print(parameter1)
复制代码


>>> fuction1('传进来的是实际参数')
传进来的是实际参数

2. 函数文档概念
        在Python中将函数体内首行字符串作为函数文档,字符串中对函数的功能和参数的含义进行说明,可以通过使用函数名加成员操作符跟上__doc__的形式返回这个字符串以备使用者查看,也可以通过help(函数名)形式直接打印出这个字符串,举例说明:

  1. def function2():
  2.         '这是一个演示函数,没有参数,啥也没有'
  3.         print('小甲鱼教你学Python!')
复制代码


  
>>> function2()
小甲鱼教你学Python!
>>> print(function2.__doc__)
这是一个演示函数,没有参数,啥也没有
>>> help(function2)
Help on function function2 in module __main__:
function2()
    这是一个演示函数,没有参数,啥也没有
3. 关键字参数
        当函数定义时形参比较多时,调用函数时时参要与形参一一对应,因为每一个参数的含义都不尽相同,怎样避免不把两者对应顺序弄乱呢,关键字参数的形式可以避免这一情况,在函数调用时直接将参数值赋值给对应的形参变量而不必顺序一一对应即可,举例说明:
  1. def function3(name,action):
  2.         print('%s——>%s' %(name,action))
复制代码


>>> function3('小甲鱼','让编程改变世界!')
小甲鱼——>让编程改变世界!

  1. def saysone(name,words):
  2.         print(name+'->'+words)

  3. saysone('让编程改变世界!','小甲鱼')
复制代码


>>>让编程改变世界!——>小甲鱼

>>> saysone(words='让编程改变世界!',name='小甲鱼')
小甲鱼——>让编程改变世界!
        也可以将关键字参数和一般实参混合使用,但是要求关键字参数必须在一般参数右边,举例说明:
>>> def function3(name,action):
        print('%s——>%s' %(name,action))
>>> function3('小甲鱼',action='让编程改变世界!')
小甲鱼——>让编程改变世界!
4. 默认参数
        默认参数指的是函数定义时可以直接给形参变量赋初值,这样函数调用过程中即使没传入相应实参也能正常执行,举例说明:

  1. def saysone(words='让编程改变世界!',name='小甲鱼'):
  2.         print(name+'->'+words)
复制代码



>>> saysone()
小甲鱼->让编程改变世界!

>>> saysone('苍井空')
小甲鱼->苍井空

>>> saysone('苍老师','让AV征服宅男!')
苍老师——>让AV征服宅男!
5. 收集参数
        当函数参数数量不一定时,在函数定义时可以使用收集参数,即在形参变量名前加一个'*',其实表示该参数变量是一个元组类型,传入的实参会以元组形式赋值给形参变量,举例说明:
>>> def func4(*para):
                print('para的数据类型是%s' %type(para))
                print('para的长度是%d' %len(para))
>>> func4('小甲鱼')
para的数据类型是<class 'tuple'>
para的长度是1
>>> func4('小甲鱼','小鱿鱼',11,29.178)
para的数据类型是<class 'tuple'>
para的长度是4
        另外,函数定义时如果有收集参数和其他的参数一般形参时,在函数调用过程中必须使用关键字参数才能将实参值传递给对应的一般形参,而且最好的形式是一般形参有默认参数,举例说明:
>>> def func5(*parameters,num=3):
        print(len(parameters))
        print(num)        
>>> func5(12,14,'小甲鱼',num = 5)
3
5
>>> func5(12,14,'小甲鱼',5)
4
3

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 10:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表