zoukankan      html  css  js  c++  java
  • 函数

    1、定义一个函数,def 函数名(参数列表):

                                         函数体

    2、python中一切都是对象,严格意义我们不能说值传递还是引用传递,应该说传递可变对象还是不可变对象;

    3、参数:必须参数、默认参数、关键字参数、不定长参数;

    必须参数,须以正确的顺序传入函数,调用时的数量与声明时一样。

    关键字参数,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

    不定长参数,基本语法如下,加了*的参数会以元祖的形式导入,存放所有未命名的变量参数。加了两个**的函数会以字典的形式导入。

    def functionname([formal_args,] *var_args_tuple ):
       "函数_文档字符串"
       function_suite
       return [expression]

    函数声明时,参数中的*可以单独出现,单独出现*后的参数必须以关键字传入,如下

    >>> def f(a,b,*,c):
    ...     return a+b+c
    ... 
    >>> f(1,2,3)   # 报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: f() takes 2 positional arguments but 3 were given
    >>> f(1,2,c=3) # 正常
    6

    4、匿名函数,不使用def这种标准格式来定义的一个函数,lambda 函数的语法只包含一个语句,lambda  [arg1,arg2,...argn]:expression

    5、强制位置参数,/用来说明(/前的参数)函数形参必须使用指定位置参数,不能用关键字参数

    在以下的例子中,形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:

    def f(a, b, /, c, d, *, e, f):
        print(a, b, c, d, e, f)
    
    


  • 相关阅读:
    建立一个简单的通讯录
    建立一个图书管理系统(oc)
    OC 学习第六天(敲代码时遇到的一些错误)
    Serv-U FTP Server 15.1.2学习笔记
    Myeclipse&Tomcat中遇到的部分问题---其一
    MySQL存储过程和函数(三)
    MySQL存储过程和函数(二)
    MySQL存储过程和函数(一)
    mybatis拦截器分页
    Java--最大子序列和实现
  • 原文地址:https://www.cnblogs.com/ydyang/p/14134084.html
Copyright © 2011-2022 走看看