当前位置: 首页 > news >正文

python - 函数

函数的基础概念

        函数是pyhton 位了代码最大程度和最小化代码冗余而提供的基本程序结构
        函数是一种设计工具,它能让程序员将复杂的系统分解可管理的的部件.
        函数用于将相关功能打包并参数化
        在python 种可以创建4种函数:
            全局函数 :定义在模块中
            局部函数 :嵌套 于其他函数中
            lambda函数(匿名函数) :表达式
            方法: 与特定数据类型关联的函数,并且只能与数据类型关联一起使用
        python 提供了很多内置函数
 
    语法:
        def functionName(parameters)
            suite
    相关概念
        def 是一个可执行语句
            因此可以出现在任何能够使用语句的地方,甚至可以嵌套于其他语句,例如if while 中
        def创建了一个对象并将复制给一个变量名(及函数名)
        return 用于返回结果对象,其为可选;无return语句的函数自动返回None对象
            返回多个值时,彼此使用逗号分隔,且组合为元祖形式返回一个对象
        def语句运行之后,可以在程序中通过函数后附加括号进行调用.
 
函数作用域
        python创建、改变或查找变量名都是在名称空间中进行
        在代码中变量名被赋值的位置决定了其能被访问到的范围
        函数定义了本地作用域,而模块定义了全局作用域
            每个模块都是一个全局作用域,因此,全局作用域的范围仅限于单个程序文件
            每次对行数的调用都会创建一个新的本地作用域,赋值的变量除非声明为全局变量,否则均为本地变量
            所有的变量名都可以归纳为本地、全局或内置的(由_builtin_模块提供)
 
变量名解析:LEGB原则
变量名引用分三个作用域进行:
首先是本地、之后是函数内、接着是全局,最后是内置.(作用域越小,优先级越高)


注意:
        python 闭包
 
参数匹配模型
    默认情况下,参数通过其位置进行传递,从左至右,这意味着,必须精确地传递和函数头部参数一样多的参数
    但也可以通过关键字参数、默认参数容器等改变这种机制
        位置:从左至右
        关键字参数:使用'name = value'的语法通过参数进行匹配
        默认参数:定义函数时使用"name=value"的语法直接给变量一个值,从而传入的值可以少于参数个数
        可变参数:定义函数时使用*开头的参数,可用于手机任意多基于位置或关键字的参数
        可变参数解包:调用函数时,使用*开头的参数,可用于将参数集合打散,从而传递任意多基于位置或关键字的参数.    

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Anec/p/10208206.html

相关文章:

  • OGL(教程38)——骨骼动画
  • ARM汇编1
  • OGL(教程40)——Stencil Shadow Volume
  • OGL(教程41)——物体运动模糊
  • Django rest_framework 总结
  • Docker在Linux上运行NetCore系列(三)在Linux上使用Docker运行Asp.NetCore
  • vs打开unity里的vs文件,但是无法正确加载项目的其他文件
  • java多线程-基础
  • wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
  • opengl——贴图
  • learnopengl——Framebuffers
  • learnopengl——纹理
  • [转帖]Application Request Route实现IIS Server Farms集群负载详解
  • learnopengl——三角形
  • songho——OpenGL的帧缓冲
  • 《深入 React 技术栈》
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 2017-08-04 前端日报
  • Android优雅地处理按钮重复点击
  • gf框架之分页模块(五) - 自定义分页
  • Java多线程(4):使用线程池执行定时任务
  • Spring Cloud中负载均衡器概览
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Web标准制定过程
  • 技术胖1-4季视频复习— (看视频笔记)
  • 解析 Webpack中import、require、按需加载的执行过程
  • 你不可错过的前端面试题(一)
  • 听说你叫Java(二)–Servlet请求
  • 一、python与pycharm的安装
  • 一些关于Rust在2019年的思考
  • 原生js练习题---第五课
  • 06-01 点餐小程序前台界面搭建
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # Panda3d 碰撞检测系统介绍
  • #QT项目实战(天气预报)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (python)数据结构---字典
  • (ros//EnvironmentVariables)ros环境变量
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (算法二)滑动窗口
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)负载均衡,回话保持,cookie
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @RequestMapping用法详解
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149