Python 07:Python函数
Python函数
介绍
函数是程序开发第一重抽象。当我们的代码中出现很多重复代码时我们就要考虑是否需要提炼共有函数出来了,Don't Repeat Youself。
通常面向过程语言称作函数,面向对象语言称作方法。主要看该代码块是独立的还是位于class里面。
Python中通过def关键字来定义函数
函数定义
def function():
...
pass
备注:Python不像java,Python是不需要定义返回值的。但是Python函数可以有返回值,是元组数据结构,Python可以返回多个返回值。
函数入参/形参
def function(name,age):
...
pass
局部变量和全局变量
python和java一样变量也有作用域,如果要想定义全局变量可以使用global关键字。
def function():
# global x=3 这么申明是不合法的
global x # 申明全局变量
x=3
print("x:",x)
pass
function()
print(x) # 如果x不申明为全局变量,这就会出错
备注:Python的变量作用域和Java的几乎一致,可以参考学习,只不过Python没有大括号来控制作用域,而是通过缩进来控制。
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。
这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
def function(name,age=21):
...
pass
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的
备注:默认参数要定义在普通参数后面,否则调用函数会出错。
关键参数
如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。
这样做有两个优势
一,由于我们不必担心参数的顺序,使用函数变得更加简单了。
二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
# 函数定义
def function(name,age,info):
...
pass
# 调用函数
function(age=21,info="xxx",name="老王")
可变参数
参考之前写过的一篇博客,Python函数入参解惑
return语句
使用return语句我们既可以跳出函数也可以返回函数值。
def function(age):
if age<0:
return
else:
return age
pass
总结
函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数。我们已经使用了许多内建的函数,比如len和range。
关于函数入参的问题可以参考我之前写的一篇关于python函数入参解惑博客。
参考
1、http://www.ibiblio.org/swaroopch/byteofpython/read/functions.html
2、https://docs.python.org/3/tutorial/controlflow.html#more-on-defining-functions
还没有评论,来说两句吧...