• 函数


    函数定义:使用关键字def加上函数名,定义以冒号结尾,
                    后面的所有缩进行构成了函数体;
                    其中有被称为文档字符串的注释,文档字符串由三引号括起,python使用它们生成程序中函数的文档;
                    调用函数,可依次指定函数名以及用括号括起的必要信息;
    形参:函数完成其工作所需的一项信息;(定义时用到)
    实参:调用函数时传递给函数的信息;(调用时用到)
    调用函数时,将实参传递给函数,这个值被存储在形参中;
    传递实参(方法):
    1.位置实参 基于实参的顺序
    2.关键字实参 传递给函数的名称-值对,使用关键字实参时,务必准确地指定函数定义中的形参名;
    3.默认值 编写函数时,可给每个形参指定默认值,调用函数中给形参提供了实参时,python将使用指定的实参值,否则,将使用形参的默认值;
        注意:使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参,这让python依然能够正确地解读位置实参;
    返回值:函数返回的值;
                在函数中,可以使用return语句将值返回到调用函数的代码行;
                调用返回值的函数时,需要提供一个变量,用于存储返回的值;
                函数可返回任何类型的值,包括列表和字典等较复杂的数据结构;
    传递列表:将列表传递给函数后,函数就能直接访问其内容;
                   在函数中能够修改列表(都是永久性的)
                   禁止函数修改列表时:可向函数传递列表的副本而不是原件;
                        要将列表的副本传递给函数:function_name(list_name[:])
                        切片表示法[:]创建列表的副本
    传递任意数量的实参:1.python允许函数从调用语句中收集任意数量的实参;
                                    2.如果让函数接受不同类型的实参,必须在函数定义中将接纳任意实参的形参放在最后;python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中;
                                    3.当需要接收任意数量的实参,但预先不知道传递给函数的会是什么样的信息,可将函数编写成能够接受任意数量的键-值对,调用语句提供了多少就接受多少;
    将函数存储在模块中:import语句允许当前运行的程序文件中使用模块中的代码;import 模块名 ;模块名.函数名()
                                    导入特定的函数:from 模块名 import 函数名; 此时调用函数无需句点;
                                    使用as给函数指定别名:from 模块名 import 函数名 as 别名;  
                                    使用as给模块指定别名:import 模块名 as 别名;
                                    导入模块中的所有函数:from 模块名 import *;
     
     
    为什么有命名关键字参数:
    命名参数配合默认参数使用可以简化代码,比如在写类的构造函数时,有10个参数,8个有合理的默认值,那么可以将这8个定义为命名关键字参数,前两个就是必须赋值的位置参数。这样,在后面生成对象时,如果要替换默认值:
    ①要么按顺序给后面8个参数替换默认值(C++做法);
    ②要么用关键字参数的传值方式给这8个关键字不一定按顺序来赋值(Python做法);
    ③要么混合①②的做法,不过容易混淆。(也就是全用必选参数,前面一部分按顺序赋值,后面一部分用关键字参数赋值)

                                    
  • 相关阅读:
    Reface.AppStarter 基本示例
    Reface.AppStarter 类型扫描 —— 获得项目中所有的实体类型
    多线程和异步有什么关联和区别?如何实现异步?
    事件总线功能库,Reface.EventBus 详细使用教程
    代理模式是什么?如何在 C# 中实现代理模式
    监听者模式在系统中的应用 —— 事件总线
    如何将 .NetFramework WebApi 按业务拆分成多个模块
    Reface.NPI 方法名称解析规则详解
    EF 太重,MyBatis 太轻,ORM 框架到底怎么选 ?
    Reface.AppStarter 框架初探
  • 原文地址:https://www.cnblogs.com/xiaowa/p/10384534.html
Copyright © 2020-2023  润新知