python学习笔记-定义函数

高洛峰
发布: 2016-11-15 14:55:48
原创
1579 人浏览过

python中定义函数的关键词是def,例如定义一个叫my_function的函数我们可以这么定义, 其中括号内的x,y为传入的参数。

def my_function():
    # function body
登录后复制

返回值

函数可以用关键字return返回数据。函数执行到return即返回不再执行函数。没用写return语句的函数,默认返回None。
return None可以简写成return。

空函数

如果想要定义一个什么都不做的函数,那么可以用pass语句。
例如

def do_nothing()
    pass
登录后复制

pass起的是占位符的作用。如果这个函数具体内容不需要定义就可以使用pass。

参数检查

前一篇文章介绍过内置函数会对传入的参数的个数和数据类型进行检查。那么对于自定义函数,python是怎么处理的呢?
我们定义一个函数

def my_function(x,y):
    return x*y
登录后复制

调用:my_function(1,2,3)

报错:

Traceback (most recent call last):
  File "/Users/W/Code/Python/LearnPython/DataType.py", line 4, in <module>
    my_function(1,2,3)
TypeError: my_function() takes exactly 2 arguments (3 given)
登录后复制

调用:my_function(1,"abc")

报错:不返回错误信息。事实上我们希望my_function传入的两个参数应该是整数活着浮点数才对。

为函数添加参数检查

我们对my_function作一些改写。

def my_function(x, y):
    if not (isinstance((x,y),(int,float)) and isinstance(y,(int,float))):
        raise TypeError(&#39;Bad operand type&#39;)
    return x*y
登录后复制

此时调用my_function函数时传入错误的参数则会抛出TypeError。

函数返回多个值

Python支持返回多个值。Python其实是通过返回一个tuple实现的。我们可以通过简单的demo验证:

def func():
    return 2, 3
print func()
登录后复制

则会输出(2,3)这么一个tuple。
在语法上,返回一个tuple可以省略括号,即多个变量可以同时接收一个tuple,按位置赋给对应的值。例如
x,y = func()。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板