python之参数详解

参考资料:http://www.cnblogs.com/bingabcd/p/6671368.html

课本:headfirst python、零基础入门学习python(小甲鱼)、流畅的python、腾讯公开课

-参数分类:

普通参数

默认参数

关键字参数

收集参数

 

--普通参数:

-定义的时候就直接定义的变量名

-调用的时候直接把变量或者值放入指定位置

eg:

   def 函数名(参数1,参数2,...):

         函数体

         #调用

         函数名(values1,values2,...)具体值参考的是位置,按位置赋值。

 

--默认参数

系统函数都有默认的参数值,在使用的时候如果没有特别定义,系统就会默认使用默认值;

还有就是形参带有默认值,调用的时候如果没有对形参的值定义,那么就默认使用默认值

eg:print()函数,在python中输入help(print),就会显示出来他的所有用法,可以看到end=”\n“。

eg: def reg(name,age,gender="male"):

                if gender=="male":

                   print("{0} is a male".format(name))

               

               if gender!="male":

                   print("{0} is not a male".format(name))

 

--关键字参数

语法:  def func (p1=v1,p2=v2...):

                    func_body

和默认参数的区别就在于调用的时候方式:

            func(p1=value1,p2=value2.......)

相对来说,比较麻烦但是也不容易混淆。也不需要考虑参数的位置了!

eg:

def stu(name="no name",age="0",addr="no addr"):

      print("I am a student")

       print("My name is {0},i am {1} years old my address is {2}")

n = xiaojing

a = 18

d = wojia

stu(name=n,age=a,addr=d)

 

--收集参数

把没有位置,不能和定义时的参数位置相对的参数,放入到一个特定的数据结构中

语法: def func(*args):

                func_body

  调用:

    func (p1,p2,p3,.....)

安照list使用方式访问args得到传入的参数

参数名args不是必须这么写,但是我们推荐直接用args,约定俗称

参数名args前需要有星号*

收集参数可以与其他参数共存

收集参数可以不带任何实参调用,此时收集参数为空tuple。

 

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

-把关键字参数按字典格式存入收集参数

语法:

   def func( **kwargs):

          func_body

 调用:

  func( p1=v1,p2=v2,p3=v3,......)

kwargs一般约定俗成,调用的时候把多余的关键字参数放入kwagrs

访问kwargs需要按字典格式访问 

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

-收集参数,关键字参数,普通参数可以混合使用

-使用规则就是普通参数和关键字参数优先

-定义的时候一般:普通函数、收集参数tuple、关键字参数、收集参数dict  //也就是说,关键字的都在后边,关键字收集参数在最后边。

def stu(name,age,hobby="没有",*args,**kwargs)

字典:for i in list.item()

你可能感兴趣的:(python之参数详解)