有一个 name pan nbsp 匿名函数 例子 之前 ++ 默认参数
以下是调用函数时可使用的正式参数类型:
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用printme()函数,你必须传入一个参数,不然会出现语法错误:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- #可写函数说明
- def printme( str ):
- "打印任何传入的字符串"
- print str;
- return;
- #调用printme函数
- printme();
以上实例输出结果:
- Traceback (most recent call last):
- File "test.py", line 11, in <module>
- printme();
- TypeError
- :
- printme
- ()
- takes exactly
- 1
- argument
- (0 given)
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
以下实例在函数 printme() 调用时使用参数名:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- #可写函数说明
- def printinfo( name, age ):
- "打印任何传入的字符串"
- print "Name: ", name;
- print "Age ", age;
- return;
- #调用printinfo函数
- printinfo
- (
- age
- =
- 50
- ,
- name="miki" );
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- #可写函数说明
- def printinfo( name, age = 35 ):
- "打印任何传入的字符串"
- print "Name: ", name;
- print "Age ", age;
- return;
- printinfo
- (
- name="miki" );
以上实例输出结果:
- Name: miki
- Age 35
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:
- def functionname([formal_args,] *var_args_tuple ):
- "函数_文档字符串"
- function_suite
- return [expression]
加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。如下实例:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- # 可写函数说明
- def printinfo( arg1, *vartuple ):
- "打印任何传入的参数"
- print "输出: "
- print arg1
- for var in vartuple:
- print var
- return;
- # 调用printinfo 函数
- printinfo( 10 );
- printinfo
- (
- 70
- ,
- 60
- , 50 );
以上实例输出结果:
- 输出:
- 10
- 输出:
- 70
- 60
- 50
python 使用 lambda 来创建匿名函数。
lambda函数的语法只包含一个语句,如下:
- lambda
- [
- arg1
- [,
- arg2,.....argn]]:expression
如下实例:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- # 可写函数说明
- sum = lambda arg1, arg2: arg1 + arg2;
- # 调用sum函数
- print "相加后的值为 : ", sum( 10, 20 )
- "相加后的值为 : "
- ,
- sum
- (
- 20
- , 20 )
以上实例输出结果:
- 相加后的值为 : 30
- 相加后的值为 : 40
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,下例便告诉你怎么做:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- # 可写函数说明
- def sum( arg1, arg2 ):
- # 返回2个参数的和."
- total = arg1 + arg2
- print "函数内 : ", total
- return total;
- # 调用sum函数
- total
- =
- sum
- (
- 10
- , 20 );
以上实例输出结果:
- 函数内: 30
一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里赋值的。
- 变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- total = 0; # 这是一个全局变量
- # 可写函数说明
- def sum( arg1, arg2 ):
- #返回2个参数的和."
- total = arg1 + arg2; # total在这里是局部变量.
- print "函数内是局部变量 : ", total
- return total;
- #调用sum函数
- sum( 10, 20 );
- print "函数外是全局变量 : ", total
Python 函数(二)
来源: http://www.bubuko.com/infodetail-2335450.html