• 技术文章 >后端开发 >Python教程

    python学习笔记-定义函数

    高洛峰高洛峰2016-11-15 14:55:48原创629
    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('Bad operand type')
        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()。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:随机森林算法入门(python) 下一篇:Python: 你不知道的 super
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• Python图像处理之PIL库• 深入了解Python装饰器函数• python数据可视化之饼状图的绘制• 实例讲解Python批量修改文件名• Python实例详解pdfplumber读取PDF写入Excel
    1/1

    PHP中文网