Python中定义函数
Python中自定义函数有一下规则:
1.
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
2.参数必须放在圆括号中间。
3.函数的第一行语句可以选择性地使用字符串来进行函数说明。
4.函数内容以冒号起始,并且缩进。
5.以return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法如下:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
函数调用
在定义一个函数时给出了函数名称,指定了函数里包含的参数,和代码块结构。接下来就可以在其他函数中调用这个函数执行,或者直接从Python提示符调用执行。
按值传递参数or按引用传递参数
所有参数在Python里都是按引用传递。这就意味着如果你在函数里修改了参数,那么在调用这个函数后,原始的参数也被改变了。
参数
必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
命名参数
命名参数和函数调用关系紧密,调用方用参数的命名确定传入的参数值。你可以跳过不传的参数或者乱序传参,因为Python解释器能够用参数名匹配参数值。
如下例:
#!/usr/bin/python
#可写函数说明
def printinfo( name, age ):
"打印任何传入的字符串"
print "Name: ", name;
print "Age ", age;
return;
#调用printinfo函数
printinfo( age=50, name="miki" );
缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
如可将上面的printinfo函数修改为:
def printinfo( name, age = 35 ):
则下面的调用
printinfo( name="miki" );
将输出:
Name: miki
Age 35
不定长参数
可能需要一个函数能处理比当初声明时更多的参数或者说在函数声明时不能确定调用时会传入多少参数,这是可使用不定长参数。
语法如下:
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串"
function_suite
return [expression]
加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。
示例如下:
#!/usr/bin/python # 可写函数说明 def printinfo( arg1, *vartuple ): "打印任何传入的参数" print "输出: " print arg1 for var in vartuple: print var return; # 调用printinfo 函数 printinfo( 10 ); printinfo( 70, 60, 50 );
变量作用域
变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:
全局变量
局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
第六次学习笔记结束,详细内容可参见URL
- 全局变量
- 局部变量