论坛首页 编程语言技术论坛

python 系统参数

浏览 2251 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-01   最后修改:2010-03-05
Python新手入门,在python中函式定义主要有四种方式:

[1]
F(arg1,arg2,...),最常见的定义方式,一个函式可以定义任何个参数,每个参数间用逗号分割,用这种参数在调用的时候必须在函式名后面的小括号中提供个数相等的值(实参),并且顺序必须相同,形参与实参一一对应

def a(x,y):
    print x,y


调用a函式,a(1,2)则x=1,y=2,如果a(1)或者a(1,2,3)则会出错

[2]
F(arg1,arg2=value2,...agrN=valueN),则将为函式提供默认值。
def a(x,y=3):
    print x,y

调用该函式,a(1,2)则x=1,y=2,如果a(1)不会导致错误,此时x=1,y=3,y值将使用默认值,a(y=4,x=2)同理


可变参数
[3]
F(*arg1),以一个*加形参的方式来表示函式的实参个数不确定,参数个数>=0,采用这样的方式定义函式,在函式内部将以实参名的方式构建一个元组(tuple)

def a(*x):
    # 定义一个名为x的元组


def a(*t):
    print x



>>>a(1)
(1,)
>>>a()
None
>>>a(1,2,3)
(1,2,3)

遍历该元组(计算总和)的一种方式,此时r定义为一元组:
def y(*r):
    x = 0
    for t in r:
        x += t
    print x



[4]
F(**arg)形参名前加2个**表示在函式内部将被存放在以形参名为标识符的dictionary,这时调用将使用arg1=value1,arg2=value2...

def a(**b):
    print b


>>>a()
None
>>>a(x=1,y=2)
{'y':2,'x':1} #注意遍历返回的顺序与形参位置顺序相反
>>>a(1,2)  #error

可通过以下方式来获取预期键值对,如果形参是未定义'y'的键,将返回None
def a(**x):
    print x.get('y')


>>>a(x=1,y=2)
2
>>>a(x=1)
None
>>>a(x=1,b=2)
None



Python参数调用过程按照以上四种方法优先级依次降低。
[1]方式解析,然后是[2]中的arg=value方式,再分别按照[3]>[4]优先级传参


这是自己第一份通过Blog整理的学习笔记,希望对自己,对浏览至此的各位朋友有所帮助,以上函式命名不符合规范,仅用于简单标识说明,使用python 2.6.2













论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics