python基础知识学习记录,day6

变量的作用域:
全局变量:在函数定义和类之外申明的变量,作用域为定义的模块,从定义位置开始,模块结束, 全局变量降低了函数的可读性和通用性,应尽量减少使用,一般是作为常量。
局部变量: 在函数中申明的变量,引用更快

全局变量中a = 8 会一直保留下去,但局部变量中,a = 8 只有在调用test( )函数时才成立。
如果要在函数内改变全局变量的值,使用global申明

参数的传递
函数的参数传递就是从实参到形参的赋值操作。在python中,一切都是对象,所有赋值操作都是对值的引用,所以当参数传递值时,传递的不是值本身。对可变对象的操作直接作用于对象,而对不可变的对象,会先创建一个新对象空间,然后对这个新空间操作。(不可变对象:数字,字符,元组,布尔值,函数)

浅拷贝和深拷贝
浅拷贝中拷贝对象的引用,深拷贝会把拷贝对象的内存也拷贝掉。

参数默认按位置顺序传递,个数与形参匹配,称为位置参数,也可以手动为参数设置默认值,如果参数找不到对应的位置的值就会使用默认值。此外,通过将参数命名来匹配位置

可变参数
Def f1(a,b,*c),*c是一个元组,可表示任意数量的参数,**c则对应一个字典

Lambda表达式和匿名函数
Lambda表达式可以用于申明匿名函数,只允许包含一个表达式,不能含有复杂语句
基本语法
Lambda arg1,arg2,arg3: 函数表达式,其中arg为参数

Eval()函数:可以用于把字符串str当成表达式求值
Eval(source[,global[,locals]] - > value
Source:表达式 globals:可选,必须是字典 locals:可选,任意映射对象

递归函数
递归函数指函数在内部直接或间接的调用自己,包含递归条件和递归步骤两部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值