Python基础(python基础知识入门)

网友投稿 286 2022-06-25


1.数据类型:

注意:'is'和'=='

'=='只比较值是否一样

'is'不仅比较值一样还要比较内存地址是否一样

2.深浅拷贝:

定义:

浅拷贝 :

浅拷贝只拷贝第一层(如果有列表嵌套,他会复制那一个索引位置的列表的内存地址,而那个列表内的数据不会复制,说白了就是共用内部的list,最外层的list是自己新建的)

深拷贝:

可变类型拷贝,不可变类型共用(列表嵌套时,内层的列表地址不会复制,因为list是可变的,他是自己创个内部的list,然后共用list内的不可变元素的地址)

其实深拷贝不可变元素时也应该重新创建内存,来访对应的不可变元素,因为小数据池的关系所以就没新开辟地址.

注:

如果发生了拷贝,内存地址一定发生变化,说白了拷贝就是自己新建地址,放复制过来的内容.

如下图:深浅拷贝如果只拷贝一个单一的列表(列表内不包含字典列表等可变元素)的情况下,深浅拷贝效果都一样:

再看代码:

重点(这里要着重理解):

列表内部加了列表后(深浅拷贝就不一样了):

看代码:

特殊情况(元组套列表):

如果单一元组深浅拷贝就都一样:

如果元组里有列表:

3.闭包:

闭包练习:

高阶函数:

①对函数名进行赋值  v=func

②把函数名当作参数传递  def xx(ww):    xx(func)

③把函数名当做返回值返回    return func

4.装饰器:

普通装饰器:

定义:

在不改变原函数内部代码的基础上,在函数执行之前和函数执行之后添加某些功能

格式:

带参数的装饰器:

带参数的装饰器本质就是在原来的装饰器外边再加个函数.

因为原来的装饰器中@只能写一个参数,就是装饰器的函数名,所以用带参数的装饰器来增加你需要的参数,就是在执行装饰器之前,先执行一个函数,用这个函数把参数传到装饰其中(例如在装饰其中执行n次被装饰的函数,这个n就得是带参数的装饰器传进去的n)

多个装饰器装饰一个函数:

这里常考的其实就是执行顺序.把执行顺序看明白了就好了.(顺序就是一条龙,跟考试贴座位号是一个道理)

一个函数正上方有多个装饰器时,先执行离被装饰函数最近的装饰器(如下图,执行顺序一定是3,2,1)

但是执行的位置要注意

①外层函数(wrapper内的代码)顺序分别是3-2-1,此时一条龙走到了1

②内层函数(inner函数内,到被装饰函数f之前的代码),1-2-3,此时一条龙走到了3

③执行被装饰的函数f,此时还在3

④执行inner函数中被装饰函数下面的代码,3-2-1


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用 Python 和 werobot 开发微信公众号(用一生去爱你)
下一篇:Python中List的排序(python listdir排序)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~