zoukankan      html  css  js  c++  java
  • Python学习(八)--函数

            函数是可以调用的,它执行某种行为并且返回一个值。       
     
    • 创建函数
        def functionname( parameters ):
             "函数_文档字符串”
           function_suite
           return [expression]
            使用def语句定义一个函数,可以在函数名后面的圆括号里定义参数,但是入参是非必要的。
            return语句从函数中返回值。当然return后面也可以不跟任何值,那就是默认None。也可以有多个值,用逗号(,)隔开,最终返回的就是一个元组。
            在def语句后面加上字符串,它会作为函数的一部分进行存储,这部分称为文档字符串。通过functionname.__doc__就可以获取函数的文档字符串。所以文档字符串内容通常是对函数进行说明。
     
    • 函数参数
            关于参数有几点说明:写在def语句中函数名后面的变量通常叫做函数的形参,而调用函数时提供的值是实参。在函数内为参数赋予新值,不会改变外部变量的值。但是如果参数是列表,当两个变量同时引用一个列表时,函数内改变列表,会引起外部列表的改变。所以函数的默认参数必须指向不可变对象。如果非要使用可变对象,那么作为函数的实参之前,最好能拷贝一个副本。
    关键字参数
            当函数的入参比较多时,参数的顺序比较难记。可以在调用函数时,提供参数的名字,比如:fun(par1 = xx,par2 = xxx)。当然也可以在定义函数的时候,给参数提供默认值,def fun(par,par2,par3 = default)。当参数有默认值时,调用的时候就不用提供参数了。
    任意数量的参数
            def fun(*params)
            参数前的星号将所有值放置在同一个元组中。如果不提供任何元素,params就是个空元祖。这样可以实现任意数量参数的函数。但是这个只能处理普通参数,不能处理关键字参数。
            def fun(**params)
            用于接受关键字参数,即调用fun(par1 = xx,par2 =xxx),会将所有值放在一个字典里。
            从上面可以看出*和**可以收集参数。使用它们也可以执行相反的过程。比如add(*params),就相当于将params这个元组里的元素进行分配。以此类推,add(**params),就是把params这个字典进行分割。
     
    • 中高阶函数
            我们可以定义一个变量,然后给变量赋值。其实函数名是指向函数的变量,函数名和普通变量没有区别,只是指向函数。所以可以定义一个变量可以指向函数,然后对变量进行调用和对函数调用的效果是一样的。比如下面这个例子:
    >>> abs
    <built-in function abs>
    >>> abs(-20)
    20
    >>> f=abs
    >>> f(-20)
    20
            那么高阶函数就是能接收函数做参数的函数,通过下面这个例子可以简单了解高阶函数:
    >>> def add(x,y,f):
    ...    return f(x)+f(y)
    … 
    >>> add(-1,-3,abs) 
     
    • 作用域
            在函数内部声明的变量的作用域就是函数内的代码块。将函数内的变量称为局部变量。参数的工作原理类似于局部变量。如果要在某个函数内部使用全局变量,可以通过global x来声明,表示接下来使用的是全局变量。
            
     
    最后讲一下函数编写的一些规范,可以提高代码的可读性:
    1.函数的名称只使用小写字母和下划线
    2.每个函数最好都包含注释,就是函数文档字符串。
    3.在给形参指定默认值时以及调用函数中关键字实参,等号两边不要有空格。
    4.定义函数时,两个函数之间最好有两个空行。 
  • 相关阅读:
    做好产品经理,需要具备哪些技能?
    【FastAPI 学习 四】 日志配置
    【FastAPI 学习三】 FastAPI SqlAlchemy MySql表迁移
    【FastAPI 学习 二】SqlAlchemy Model模型类
    【FastAPI 学习一】配置文件
    Python 时间操作 格式化“2020-10-16T17:36:00+08:00“时间
    Python sqlalchemy 原生SQL LIKE 查询
    Git 使用笔记
    数据清洗(一)
    PDF文件转换为TXT文件
  • 原文地址:https://www.cnblogs.com/mujiujiu/p/7832297.html
Copyright © 2011-2022 走看看