位置: 编程技术 - 正文

总结Python编程中函数的使用要点(python编程内容)

编辑:rootadmin

推荐整理分享总结Python编程中函数的使用要点(python编程内容),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python编程作用,python中的,python的例子,python 总结,python 总结,python 总结,python 总结,python编程语言汇总,内容如对您有帮助,希望把文章链接给更多的朋友!

为何使用函数

最大化代码的重用和最小化代码冗余 流程的分解

编写函数

>>def语句在Python中创建一个函数是通过def关键字进行的,def语句将创建一个函数对象并将其赋值给一个变量名。def语句一般的格式如下所示:

通常情况下,函数体中会有一个return语句,可以出现在函数体的任何位置,它表示函数调用的结束,并将结果返回至函数调用处。但是return语句是可选的,并不是必须的。从技术角度上说,一个没有返回值的函数自动返回了none对象,但是这个值可以被忽略掉。

>>def语句是实时执行的Python的def语句实际上是一个可执行的语句:当它运行的时候,它创建一个新的函数对象并将其赋值给一个变量名。(请记住,Python中所有的语句都是实时运行的,没有对像独立编译时间这样的流程)因为它是一个语句,它可以出现在任一语句可以出现的地方——甚至是嵌套在其他语句中。

它在运行时简单地给一个变量名进行赋值。与C语言这样的编译语言不同,Python函数在程序运行之前并不需要全部定义,更确切地说,def在运行时才评估,而在def之中的代码在函数调用时才会评估。

就像Python中其他语句一样,函数仅仅是对象,在程序执行时它清除地记录在了内存之中。实际上,除了调用之外,函数允许任意的属性附加到记录信息以供随后使用:

一个例子:定义和调用

上面代码中对函数的三次调用都能正确运行,因为”*“对数字和序列都有效,在Python我们从未对变量、参数或者返回值有过类似的声明,我们可以把times用作数字的乘法或是序列的重复。

换句话说,函数times的作用决定于传递给它的参数,这是Python的核心概念之一。

需要强调的是,如果我们传入了一个不支持函数操作的参数,Python会自动检测出不匹配,并抛出一个异常,这样就能减少我们编写不必要的类型检测代码。

>>局部变量所有在函数内部定义的变量默认都是局部变量,所有的局部变量都会在函数调用时出现,并在函数退出时消失。

函数设计概念

耦合性:对于输入使用参数并且输出使用return语句。 耦合性:只有在真正必要的情况下使用全局变量。 耦合性:不要改变可变类型的参数,除非调用者希望这样做。 聚合性:每一个函数都应该有一个单一的、统一的目标。 大小:每一个函数应该相对较小。 耦合:避免直接改变在另一个模块文件中的变量。 函数对象:属性和注解

>>间接函数调用由于Python函数是对象,我们可以编写通用的处理他们的程序。函数对象可以赋值给其他的名字、传递给其他函数、嵌入到数据结构、从一个函数返回给另一个函数等等,就好像它们是简单的数字或字符串。

把函数赋值给其他变量:

传递给其他函数:

把函数对象填入到数据结构中:

从上述的代码中可以看到,Python是非常灵活的!

>>函数内省由于函数是对象,我们可以用用常规的对象工具来处理函数。

内省工具允许我们探索实现细节,例如函数已经附加了代码对象,代码对象提供了函数的本地变量和参数等方面的细节:

工具编写者可以利用这些信息来管理函数。

>>函数属性函数对象不仅局限于上一小节中列出的系统定义的属性,我们也可以向函数附加任意的用户定义的属性:

这样的属性可以用来直接把状态信息附加到函数对象,而不必使用全局、非本地和类等其他技术。和非本地不同,这样的属性信息可以在函数自身的任何地方访问。这种变量的名称对于一个函数来说是本地的,但是,其值在函数退出后仍然保留。属性与对象相关而不是与作用域相关,但直接效果是类似的。

总结Python编程中函数的使用要点(python编程内容)

>>Python3.0中的函数注解在Python3.0也可以给函数对象附加注解信息——与函数的参数相关的任意的用户定义的数据。Python为声明注解提供了特殊的语法,但是,它自身不做任何事情;注解完全是可选的,并且,出现的时候只是直接附加到函数对象的__annotations__属性以供其他用户使用。

从语法上讲,函数注解编写在def头部行,对于参数,它们出现在紧随参数名之后的冒号之后;对于返回值,它们编写于紧跟在参数列表之后的一个->之后。

注解和没注解过的函数在功能和使用上完全一样,只不过,注解过的函数,Python会将它们的注解的数据收集到字典中并将它们附加到函数对象自身。参数名变成键,如果编写了返回值注解的话,它存储在键return下,而注解的值则是赋给了注解表达式的结果:

注意点

如果编写了注解的话,仍然可以对参数使用默认值,例如:a:'spam'=4 意味着参数a的默认值是4,并且用字符串'spam'注解它。在函数头部的各部分之间使用空格是可选的。注解只在def语句中有效。匿名函数:lambda

除了def语句之外,Python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具很相似,所以称为lambda。就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回了一个函数而不是将这个函数赋值给一个变量名。这也就是lambda有时叫做匿名函数的原因。实际上,它们常常以一个行内函数定义的形式使用,或者用作推迟执行一些代码。

>>lambda表达式lambda的一般形式是关键字lambda,之后是一个或多个参数,紧跟的是一个冒号,之后是一个表达式:

由lambda表达式所返回的函数对象与由def创建并赋值后的函数对象工作起来是完全一样的,但是lambda有一些不同之处让其在扮演特定的角色时很有用。

lambda是一个表达式,而不是一个语句。lambda的主体是一个单个的表达式,而不是一个代码块。一下两段代码生成了同样功能的函数:

默认参数也能在lambda中使用

在lambda主体中的代码像在def内的代码一样都遵循相同的作用域查找法则。

>>为什么要使用lambda通常来说,lambda起到了一种函数速写的作用,允许在使用的代码内嵌入一个函数的定义。它们总是可选的,因为总是能够用def来代替。

lambda通常用来编写跳转表:

实际上,我们可以用Python中的字典或者其他数据结构来构建更多种类的行为表:

这样编写代码可以使字典成为更加通用的多路分支工具。

最后需要注意的是,lambda也是可以嵌套的

在序列中映射函数:map

map函数会对一个序列对象中的每个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表。

由于map期待传入一个函数,它恰好是lambda最常出现的地方之一。

函数式编程工具:filter和reduce

在Python内置函数中,map函数是用来进行函数式编程的这类工具中最简单的内置函数代表。所谓的函数式编程就是对序列应用一些函数的工具。例如过滤出一些元素(filter),以及对每对元素都应用函数并运行到最后的结果(reduce)。

序列中的元素若其返回值是真的话,将会被加入到结果列表中。

reduce接受一个迭代器来处理,但是,它自身不是一个迭代器,它返回一个单个的结果。

上面两个reduce调用,计算了一个列表中所有元素的累加和与累积乘积。

深入解析Python中函数的参数与作用域 传递参数函数传递参数时的一些简要的关键点:参数的传递是通过自动将对象赋值给本地变量名来实现的。所有的参数实际上都是通过指针进行传递的,

举例讲解Python中的迭代器、生成器与列表解析用法 迭代器:初探上一章曾经提到过,其实for循环是可用于任何可迭代的对象上的。实际上,对Python中所有会从左至右扫描对象的迭代工具而言都是如此,这

Python中的条件判断语句与循环语句用法小结 if语句通用格式if语句一般形式如下:iftest1:statements1eliftest2:statements2else:statements3另外需要注意的是,Python中是没有switch/case语句的while循环while语句是Python

标签: python编程内容

本文链接地址:https://www.jiuchutong.com/biancheng/384389.html 转载请保留说明!

上一篇:两个命令把 Vim 打造成 Python IDE的方法(vim合并两个文件)

下一篇:深入解析Python中函数的参数与作用域(python 解析算法)

  • 股票初始计量后按新金融准则计入哪个科目
  • 增值税专用发票抵扣期限
  • 抵消损益分录
  • 工地上用的辅材
  • 发票怎么看开票最大额
  • 企业所得税季度预缴怎么计算
  • 铲车用什么燃油
  • 工程物资和特种设备区别
  • 外资企业所得税和内资区别
  • 售后回租有风险吗
  • 外贸企业出口退税出口明细申报表
  • 退休职工报销医药费
  • 一张发票多个单位报销,怎么分辨
  • 公司购买设备24套
  • 餐饮增值税
  • 主营业务收入是营业收入吗
  • 开具发票时提示离线发票累计金额超限?教你如何处理
  • 三证合一的税号变了,法人怎么重新绑定企业
  • 种植保险包括
  • 三证合一后纳税人识别号和信用代码一样吗
  • 技术服务税票
  • 不动产处置流程
  • 资本公积金转增资本属于所有者权益吗
  • 不锈钢材料开票
  • 固定资产进项税额怎么做账
  • 微软发布新的免费 Win11 虚拟机 (2302)
  • windows 11怎么用
  • php的数组函数
  • 无法启用网络发展
  • 小规模核定征收突然转查账
  • php实验报告
  • 防止盗链的php代码
  • 企业所得税的应纳税额计算公式
  • 企业上交财政款分录
  • 什么企业需要开具矿产品发票
  • 那慕尔省
  • php用户登录界面
  • php curl_init
  • 汇算清缴后缴纳的企业所得税怎么做分录
  • 我想问一下移动
  • dedecms插件
  • 汽车牌照费用是在哪里开的
  • 航空公司可以开发票吗
  • 财产租赁合同按金额的多少进行计税
  • 长期应付款科目的涉税风险
  • 支付定金的账务怎么处理
  • 村委会靠什么赚钱
  • 闽侯县安置房交易缴纳土地出让金
  • 主营业务收入的计算公式
  • 注销的企业
  • 合同终止已开发怎么办
  • 成本费用总额包括营业外支出吗
  • 茶农的茶叶自产自销需要办哪些证
  • 收取招标代理费的规定
  • 直接人工成本包括管理人员开的工资吗
  • 已认证发票退回说明模板
  • 收到投资款如何做税务登记
  • 捐赠利得的会计科目
  • xp系统安装程序没反应
  • win7 64位系统使用百度影音播放视频没声音没画面的故障原因及解决方法
  • 微软商店更新错误
  • 如何永久激活win11
  • win8桌面不显示
  • win8.1激活方法
  • win10添加开机启动项
  • 安卓微信5.0版本下载
  • js用变量值做参数
  • javascript:void(0)的作用示例介绍
  • python实现mysql的单引号字符串过滤方法
  • linux echo echo
  • js中tolocalestring
  • 遍历字符串python
  • javascript每隔一秒调用函数
  • 完美实现碳排放自主抵消的工厂叫什么
  • 高铁票抵扣进项能抵扣吗
  • 纳税人被列入非正常户超过三个月的情况
  • 预缴增值税申报表申报期限
  • 福建省运会2022年
  • 伴生矿和伴采矿的区别
  • 我国近十年财政支出结构占比
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设