Python基础学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011304490/article/details/79952024

前言:翻看了下电脑硬盘,存储了太多零散的文档,决定把当初学习Python时的“灵性点”记下来,每次回看,都能联想到、衍生出很多知识点。贵在灵性,它能让知识和创造力源源不断,这也是学习的乐趣和坚持下去的驱动力所在~

1、python的星号:参数分解和组合


2、列表切片可获得列表的“拷贝”


3、加上小括号也不一定是元组类型,如(1),还是整型;除非(1,)加上个逗号;或者tuple = 1,


4、不可变的元组可以通过切片,然后拼接元组,达到“改变”元组的目的;str类型也适用


5、python的函数没有return语句也有返回值,默认返回None,可将函数调用赋值并print得出None


6、在函数内试图修改全局或者外部变量,会使得python重新创建一个新的引用地址,相同的“变量名”指向不同的值;当然也可以用列表类型存储值,这样的话修改的是列表的元素,引用指向修改后的值就是改变后的值。值存在堆中,引用(变量)存在栈中


7、global是全局变量,nonlocal是外部变量,“外部”是对于函数嵌套概念而言的


8、sys.setrecursionlimit(1000)可以设置递归的深度层数


9、递归原则:调用自身函数,且有不断调用的停止条件


10、使用copy模块的copy功能的时候,它会根君当前拷贝数据的类型为可变还是不可变有不同的处理方式


11、注意,try代码块里的某个地方出错后,该地方之后的代码块都不会再执行了


12、else不仅可以和if语句搭配,else也可以和循环语句搭配,循环结束后还未找到符合条件的东西,就执行else语句;也可以和try语句搭配,反正else百搭


13、Python 方法中变量加self和不加的区别:http://blog.csdn.net/smalltankpy/article/details/54945135


14、实例名.方法()其实实质是 类名.方法(实例名)


15、Python的伪“私有”变量机制,在变量名前面加两个“_”,如__name,其实也可以通过_类名__name,进行访问


16、“构造”,是自动调用;“析构”,是满足条件后才调用,比如我要删除,才__del__(),不然方法不会用到


17、“析构”方法中的__del__(),要在所有的引用计数都被消除时才会被调用,不是del时就会触发


18、python下划线区分:https://www.zhihu.com/question/19754941


19、sys.path为python搜索模块的路径集合


20、模块名.__file__可查看模块源码路径


21、virtualenv环境隔离:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000


22、a+=a是在数据上进行修改,a=a+a是先定义一个新的变量a,在将新的标签“a”贴在a+a的值上(对可变数据类型来说)


23、缓冲池的小例子:a和b在id相等的情况下只有两种:
(-5,256)的正负整数,以及字符串。
因为有缓存的情况下会默认为同一个对象。如果不在此范围内,比如:


a = 257
b = 257
a is b
False


而10.0属于浮点数。python对浮点数没有实现缓冲池。


24、注意:可迭代对象不一定是迭代器,迭代器可以用next()函数,可迭代对象用不了


25、“开放封闭”原则:对原有的代码块“封闭”,最好不做修改;但是“开放”,即可以扩展。来自装饰器的概述


26、多个装饰器:装饰器执行顺序是由上往下,但是装饰内容是由下网上生效,注意理解。“让下面的装饰器先把函数装饰完”,最上层的装饰器再把装过的函数再装一次。“从里往外包装,从外往里调用”


27、注意:装饰器就算装饰的目标函数没被调用,都会装饰,所以函数被调用前其实装饰器都装饰好了


28、types.MethodType(方法.对象),可把类之外创建的方法绑定到类对象下,这样类对象就可以调用这个方法了


29、生成器:“用到才会生成”。因为生成器也是符合“迭代器协议”的,所以迭代器其实也是“用到才会生成”


30、dir(一个对象),如果有__iter__,则该对象使用了迭代器协议,及符合迭代规则
 
31、next(生成器对象) 等价于 生成器对象.__next__()


32、type()可创建一个类


33、sys.getrefcount(引用)可查看引用计数


34、进程创建函数:os.fork函数只在Unix、Linux、Mac上运行,Windows不行。所以引入了multiprocessing中的Process模块,提供了跨平台的相应的接口


35、用os.fork函数创建的进程,父进程不会等子进程结束;而multiprocessing中的Process模块创建的进程,父进程会等子进程结束后才结束


36、网络通信:单工--如收音机,半双工--如对讲机(同一时间只能听或者说),全双工--如打电话(随时能说也能听)


37、通信广播模式:单播--一对一,多播--一对多,广播--一对所有


38、UDP协议允许广播,TCP协议不允许广播


39、正向代理和反向代理的区分,简单的说就是代理服务器的“门口”朝向谁?朝向客户端,就是正向代理;朝向服务端,就是反向代理


40、爬虫真谛:不要关注页面信息,关注页面信息的数据源

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页