Python知识(一)

1)深浅拷贝

        浅拷贝重新分配一块内存,创建一个新的对象,但里面的元素是对各个子对象的引用。深拷贝重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中,因此新对象和原对象没有任何关联。列表可以通过切片实现浅拷贝,copy.copy()(list set dict)都可以实现浅拷贝。tuple不会通过切片实现浅拷贝(str一样),都是开辟新内存,存储原对象的子对象的引用。copy.deepcopy()新存储空间存储新对象。

2)is和==的区别

        ==是对值进行判断,is是判断id也就是地址

3)闭包和装饰器的概念

        在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。闭包可以提高代码的复用性。闭包引用了外部函数的局部变量,则外部函数的局部变量没有释放内存消耗内存。

        装饰器,python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,好处就是不改变原函数的代码前提下给函数增加新功能。具体来说,就是定义一个新的函数,def xx(func1) 这个新的函数要传入的参数是老函数,也就是要被装饰的函数,而新函数里面还要有一个函数,在这个子函数中调用老函数,并且在其基础上加上新功能,最后在新函数中将子函数返回。

4)可变对象、不可变对象

        可变:列表、字典、集合

        不可变:整数、字符串、浮点数、布尔型、元组

        值传递:指的是实参类型为不可变类型(数字,字符串,元组),形参改变不影响实参。

        引用传递(地址传递):实参类型为可变类型(列表、字典、集合,np矩阵,torch.tensor),形参变化实参也变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值