一、函数定义
# def function1(): function_suite
二、函数调用
# def function3(): print "测试函数" function3() 运行结果: 测试函数
三、函数返回值
# def function2(): print "测试函数" return True rr = function2() # 测试函数返回值 print rr 运行结果: 测试函数 True 1、函数遇到return则不继续执行 2、返回值可传递给调用者 3、return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None
四、参数传递
# def function4(a): # 定义函数时写的参数叫形参 print "测试参数传递 %s" % a return True rr = function4("test") # 调用函数时写的参数内容叫实参数 print rr #如果有多个实参,出拿地参数时必须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
五、关键字参数
# def function4(a, b): print a, b function4(b = "hello", a = "world") 运行结果: world hello 1、指定形参传实参时可以不按照顺序写 2、使用关键字参数允许函数调用时参数的顺序与声明时不一致
六、缺省参数
# def function4(a, b="hello"): print a, b function4("abd") function4("abc", "edf") 运行结果: abd hello abc edf 1、如果没有为形参传实际参数,则参数使用默认值。 2、该种情况下,指定默认值得参数一定要写在后面,不然会报错。
七、动态参数1(不定长参数)
# def function(*a): # 可以和普通参数一起声明 print a, type(a) function(1,2,3,"a","b","c") #运行结果 #(1, 2, 3, ‘a‘, ‘b‘, ‘c‘) <type ‘tuple‘> 1、函数可接受任意多个参数,函数默认会把所有参数放在一个元组中,每个参数作为元组的一个元素 2、缺省参数的值如果没有传入,则被认为是默认值
八、动态参数2
# def function(**a): print a, type(a) function(AA = "aa", BB = "bb") #运行结果 #{‘AA‘: ‘aa‘, ‘BB‘: ‘bb‘} <type ‘dict‘> 1、传入的参数必须以key = value的形式传递,可传递任意多个,函数会把传进来的参数放在字典中保存,每个参数作为字典的一组元素
九、动态函数3
# def function(k, *a, **b): print k print a, type(a) print b,type(b) function(1,2,3,"a","b",("hello", "world"), AA = "aa", BB = "bb") #运行结果: # 1 # (2, 3, ‘a‘, ‘b‘, (‘hello‘, ‘world‘)) <type ‘tuple‘> # {‘AA‘: ‘aa‘, ‘BB‘: ‘bb‘} <type ‘dict‘> 1、此种情况任何参数都可以传递,但是如果有普通的形参(k),传递的第一个参数一定会给k。 2、此种情况 **b一定要放在最后,*a放在**b之前
本文出自 “学无止境” 博客,请务必保留此出处http://20120809.blog.51cto.com/10893237/1975699
原文地址:http://20120809.blog.51cto.com/10893237/1975699