函数定义与使用
来源:互联网 发布:超级英雄淘宝购买礼包 编辑:程序博客网 时间:2024/05/19 19:12
函数定义
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
实例
1
2
3
4
5
6
7
8
>>>
def
myfun(a):
if
(a
=
=
10
):
print
(
"ok"
)
>>> myfun(
10
)
ok
>>> myfun(
2
)
按值传递参数和按引用传递参数
所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如:
#!/usr/bin/python # 可写函数说明def changeme( mylist ): "修改传入的列表" mylist.append([1,2,3,4]); print "函数内取值: ", mylist return # 调用changeme函数mylist = [10,20,30];changeme( mylist );print "函数外取值: ", mylist
传入函数的和在末尾添加新内容的对象用的是同一个引用。故输出结果如下:
函数内取值: [10, 20, 30, [1, 2, 3, 4]]函数外取值: [10, 20, 30, [1, 2, 3, 4]]
匿名函数
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
Lambda函数能接收任何数量的参数但只能返回一个表达式的值,同时只能不能包含命令或多个表达式。
匿名函数不能直接调用print,因为lambda需要一个表达式。
lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
如下实例:
#!/usr/bin/python #可写函数说明sum = lambda arg1, arg2: arg1 + arg2; #调用sum函数print "Value of total : ", sum( 10, 20 )print "Value of total : ", sum( 20, 20 )
1
2
3
4
5
6
7
8
9
10
>>>
lambda
a,b:a
*
b
<function <
lambda
> at
0x02212930
>
>>> cheng
=
lambda
a,b:a
*
b
>>> cheng
2
4
SyntaxError: invalid syntax
>>> cheng
2
,
4
SyntaxError: invalid syntax
>>> cheng(
2
,
4
)
8
>>>
0 0
- 函数定义与使用
- scala函数定义与使用
- PHP函数的定义与使用
- 函数指针的定义与使用
- 指向函数的指针定义与使用
- PL/SQL函数的定义与使用
- 函数指针的定义与使用
- PHP入门-函数的定义与使用
- 函数指针与函数指针数组的定义与使用
- 函数指针与函数指针数组的定义与使用
- 函数指针以及函数指针数组的定义与使用
- 函数定义与声明
- 在c语言中函数的定义与使用
- Python学习(一)函数定义、使用与嵌套
- JAVA中方法(函数)的定义与使用
- Python3.5基础——函数的定义与使用
- 定义使用函数指针
- Python 函数定义,使用
- 更改android开发虚拟机设备avd路径
- 集软件授权、课件保护和身份认证于一身的加密狗
- sql语句判断字符串中是否包含另一个字符
- 圆角、描边背景样式,XML文件
- POJ 1659 Frogs' Neighborhood 可图性判断-Havel定理
- 函数定义与使用
- 位运算符C语言
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 成人の日に考える―答え合わせと黒のスーツ
- Spring Mvc Session超时easyui tab页中ajax请求跳出问题
- rhel7.0安装图形桌面
- 浏览器兼容性改革
- 转MSDN里的CWnd::OnHScroll
- android -- 模块 android手机旋转屏幕时让GridView的列数与列宽度自适应