函数
2015-10-18 21:15:24 0 举报
AI智能生成
python函数
作者其他创作
大纲/内容
函数
(1)函数是什么
函数使用分制策略来解决问题
函数可以返回复合对象
python中函数特点
代表执行单独的操作
采用零个或多个参数作为输入
返回值(可能是复合对象)作为输出
函数特点
分而治之的策略
抽象:函数为程序的一些部分提供更高层次、更抽象的接口
重用:重复使用
共享
安全性 \u00A0 :小段代码可以仔细审核。
简化/可读性 \u00A0:函数的封装,简化程序
(2)python函数
定义:函数的定义创建函数
调用:调用是函数在程序中的运用
名字与对象关联
赋值语句:变量与对象
函数定义:函数名与函数对象
函数组成
def\u00A0
在命名空间中创建新的名字和与名字相关联的新对象(函数对象)
复合语句
def语句由python执行,用于创建函数
return
表示从函数调用输出返回值
执行retutn语句后函数结束
\"\"\" ----\"\"\" \u00A0
文档字符串:对函数的简短描述
(3)函数控制语句
控制语句
函数的控制语句 :从主调程序中调用到函数本身,然后带着函数返回值重新回到主程序
控制语句有函数调用的顺序决定
函数可以在程序文件中的任何地方定义,只是需要调用之前先进行定义
函数名必须位于命名空间之后才能调用
函数的调用
什么时候使用函数
只做一件事(尝试做天多的事情最好把函数分解成多个函数)
可读(命名、结构、良好的编程风格)
不宜过长
函数保持足够的短,最好能在一屏显示
可重复(自成体系,不依赖于主程序)
完整(确保在所有情况下,函数都能正确执行)
重构(对现有代码进行修改,结构进行改进,但功能保持不变)
无return语句
不返回值的函数通常称为过程
默认返回值None
使用过程的实例
改变程序状态
特殊的格式输出
打开或关闭图形模式
改变网络连接模式
多个return语句
一个return语句将结束函数
(4)作用域
作用域
函数内定义的变量,不能被外部函数访问.
函数调用结束时,命名空间将隐藏
函数命名空间在函数执行时激活,函数执行结束后停止活动
只有在当前作用域内的变量,才能在执行过程中引用
实参、形参、命名空间
命名空间包含一对集合
关系:引用
名称
该名称相关的对象
主程序和函数都有自己独立的命名空间
函数调用
实参和形参复制的是引用关系,而不是对象本身
形参和实参引用同一对象
传递不可变对象,形参在函数体内重新赋值后,实参不会发生改变
传递可变对象
可变对象:对象的值是可以改变的
在函数体中不对变量重新引用,即关联没有发生改变,但改变了对象本身
传递可变对象后,使得函数可以在主调程序中更改值
返回复杂对象
函数可以返回包含多个部分的对象 \u00A0 -----列表、元组、集合、字典
函数返回的是对象
如果返回一系列由逗号分隔的结果,python将会生成单独的元组来包含这些值,然后返回该元组
返回多个值
多个值接收----多重复制
单个接收----元组
重构
代码是否变得更好
更具有可读性
(5)默认值以及形参为关键字
参数传递
采用默认值
用户没有提供值时,分配给函数的值
默认值只能用于最右边的形参
通过名称进行参数传递
实参按照从左到右的顺序映射到对应位置的形参中
使用参数名作为关键字
忽略形参与实参的匹配顺序,直接指出形参和实参的对应匹配关系
多个参数与多个默认值时非常有用,直接指定需要改变的参数
任何参数名都可以在函数调用时用作关键字
默认值为问题
参数名相关联的默认对象的变化,将在函数调用期间保持一致
如果对象是可变的并且修改过,在所有的调用中都将保留这些修改
不要使用可变的默认值
如果必须使用可变默认值,则要在函数定义中使用None等作为默认值,然后在函数中对默认值进行验证
(6)函数和对象
定义函数即创建一个对象
__属性__
__name__:函数相关联的名称
__str__ \u00A0:构造函数字符串
__dict__:函数的命名空间
__doc__:文档字符串
文档字符串
使用三重引号分隔字符串
__doc__来查询
文档字符串返回每个函数最基本的信息
(7)传值或者传引用
python中传递的是对象引用
每个值的传递都是对象的引用,对象在这个过程中是不可复制的
如果对象是可变的,在函数中所做的任何更改将反映在对象的外部作用域
如果对象是不可变的,当更新引用时将引用新对象
0 条评论
回复 删除
下一页