python基础第六节

本文介绍了Python中的函数特性,包括函数作为对象的使用,如作为参数传递和返回值。讨论了变量作用域,强调全局与局部变量的区别,并解释了如何在函数内部修改全局变量。此外,深入讲解了参数传递的原理,明确了Python中参数的引用传递特性,以及浅拷贝和深拷贝的概念。最后,提到了不同类型的参数(位置、默认值、可变参数)以及lambda表达式和递归函数的应用。
摘要由CSDN通过智能技术生成

函数也是对象

 函数可以作为参数来传递, 也可以作为返回值返回

可以使用等号将函数赋值给一个函数

def test01():

        xxx

c = test01

c() 相当于 test01()

变量的作用域 

全局变量定义在模块,从定义的位置开始到模块结束

局部变量在函数内部

全局变量一般作为一个常量使用

函数内要改变全局变量的值,使用global声明一下   直接在函数内部写 global a 

局部变量比全局变量快,优先使用局部变量

如果全局变量和局部变量重名,则在函数内隐藏全局变量,使用同名的局部变量

调用函数的时候启动一个栈帧,栈帧外部访问不了栈帧内部,栈帧内部可以访问栈帧外部

局部变量的查询和访问速度比全局变量块,在特别强调效率的地方可以通过将全局变量转为局部变量来提高运行速度

参数的传递 

参数的传递本质上就是从实参到形参赋值操作  python 一切都是对象,python中都是引用传递,不是值传递 

可变对象进行写操作,直接作用于源对象本身

对不可变对象进行写操作,会产生一个新的对象空间,并用新的值填充这块空间

不可变对象 int float 字符串 元组 布尔值

赋值操作系统会创建一个新的对象,类似其他语言的值传递

浅拷贝 深拷贝

浅拷贝 不拷贝子对象的内容,知识拷贝子对象的引用

深拷贝 会连子对象的内存也全部拷贝一份,对子对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值