python-中函数的参数

python-中函数的参数,第1张

概述函数的注释In [3]: def fun(test):   ...:     '''This is a test content'''   ...:     print("%s" % test)   ...: In [4]: print fun.__doc__  #打印函数的说明信息This is a test content函数与过程的区别#在数学中函数,执行完成之后 函数的注释
In [3]: def fun(test):   ...:     '''This is a test content'''   ...:     print("%s" % test)   ...: In [4]: print fun.__doc__  #打印函数的说明信息This is a test content
函数与过程的区别
#在数学中函数,执行完成之后,总是会返回一些数值;因为我们借助于函数做一些运算。#但正如上面定义fun()一样,这个函数我们并没有任何的返回结果,这样的形式一般称之为过程。# 但是在python中二者的区分并不是那么明确。
函数的参数位置参数

在c语言中有形参和实参之分,在这里我们参照c语言中的定义。

形参:在定义函数时,指定的参数叫形参。

实参:在调用函数是,给函数传递的值叫实参。

In [5]: def fun(x,y,z):    # 这里的x, y,z叫形参   ...:     print x   ...:     print y   ...:     print z   ...:     In [6]: fun(1,2,3)   # 这里的1,2,3叫实参123# 在这里我们直接给fun()函数传递了三个数值,他会按照形参出现的位置顺序,把实参的值传递给形参。
关键字参数:
In [7]: fun(z=8,x=9,y=7) # 传递实参时使用这种形式,叫关键字参数978In [8]: fun(8,z=9,y=4)  # 关键字参数和位置参数的结合使用849In [9]: fun(y=6,3,8)  # 关键字参数,必须在位置参数之后  file "", line 1    fun(y=6,3,8)SyntaxError: non-keyword arg after keyword arg
默认参数:

在定义函数时,可以直接给形参指定对应的值,若在调用是没有传入数值,则使用默认的值;若在调用时传入了数值,则使用传入的值。

In [10]: def fun1(x,y=5):   ....:     print x   ....:     print y   ....:     In [11]: fun1(4)    #调用是没有只传人一个数值45In [12]: fun1(4,9)  # 调用时传入两个数值49In [13]:
收集参数--->准确的说,应该是收集实参
In [13]: def fun(test):  # 注意这两个参数的异同   ....:     print test   ....:     In [14]: def fun1(*test): # 多了一个*号   ....:     print test   ....:     In [15]: fun(1,2,3)---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)in ()----> 1 fun(1,2,3)TypeError: fun() takes exactly 1 argument (3 given)In [16]: fun1(1,2,3)  # 会以元组的形式返回参数列表(1, 2, 3)In [17]: def fun2(x, *test):  # 含有位置参数,   ....:     print x   ....:     print test   ....:     In [18]: fun2(1,2,3,4,5)  #×号就是收集其余的位置参数1(2, 3, 4, 5)

若想收集关键字参数,则需要如下这样:

In [19]: fun1(x=1,y=2,z=4)---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)in ()----> 1 fun1(x=1,y=2,z=4)TypeError: fun1() got an unexpected keyword argument 'x'In [21]: def fun3(**kargs):  #定义形参时候使用双*号,可以处理关键字参数   ....:     print kargs   ....:     In [22]: fun3(x=1,y=2,z=4)  # 关键字参数以字典形式返回{'y': 2, 'x': 1, 'z': 4}

以上是形参的设置,来处理不同类型的实参。反过来我们也可以把元组,或者字典作为实参,传入到函数的形参里面。

In [23]: def add(x,y):   # 定义一个简单的函数   ....:     print x +y    ....:     In [24]: add(4,5)    # 调用查看结果,作对比9In [25]: tuple1 = (34,54)   # 定义一个元组,In [26]: add(*tuple1)   # 把元组作为参数传递给函数88In [27]: dict1 = {"x":43, "y":32} # 定义一个字典,  In [28]: add(**dict1)  #把字典作为参数传递给函数75In [29]: dict2 = {"a":43, "b":32} # 定义另一个字典In [30]: add(**dict2)  #同样的传递,却失败---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)in ()----> 1 add(**dict2)TypeError: add() got an unexpected keyword argument 'a'# 在使用字典传递参数时候,字典的key值要和形参的值对应,这里字典的键key值必须为x, y与形参对应

 

总结

以上是内存溢出为你收集整理的python-中函数的参数全部内容,希望文章能够帮你解决python-中函数的参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存