初识python廖雪峰_Python3-廖雪峰学习笔记「建议收藏」

初识python廖雪峰_Python3-廖雪峰学习笔记「建议收藏」Key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到valuedict是用空间来换取时间的一种方法,用在需要高速查找的地方。dict的key必须是不可变对象通过key计算位置的算法称为哈希算法,要保证hash的正确性,作为key的对象就不能变的对象a的内容是’abc’,是指,a本身是一个变量,它指向的对象的内容才是abc’对于不变…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value

dict是用空间来换取时间的一种方法,用在需要高速查找的地方。

dict的key必须是不可变对象

通过key计算位置的算法称为哈希算法,要保证hash的正确性,作为key的对象就不能变的

对象a的内容是’abc’,是指,a本身是一个变量,它指向的对象的内容才是abc’

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回

函数体内部可以用return随时返回函数结果

函数可以同时返回多个值,但其实就是一个tuple

函数参数必须必选参数在前,默认参数在后

默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误

Python内置的enumerate函数可以把一个list变成索引-元素对

在Python中,这种一边循环一边计算的机制,成为生成器:generator

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

函数是顺序执行,遇到return语句或者最后一行函数语句就返回

而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行

filter()的作用是从第一个序列中晒出符合条件的元素。由于filter()使用了惰性计算,所以只有在取filter()结果的时候,才会真正筛选并每次返回下一个晒出的元素

返回闭包时牢记的一点就是:返回函数不要饮用任何循环变量,或者后续会发生变化的变量

一个函数可以返回一个计算结果,也可以返回一个函数

返回一个函数时,牢记该函数并未执行,返回函数不要引用任何可能会变化的变量

在代码运行期间动态增加功能的方式,称之为装饰器(Decorator)

本质上,decorator就是一个返回函数的高阶函数

面向对象的设计思想是抽象出Class,根据Class创建Instance

类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”

init方法的第一个参数永远是self,表示创建的实例本身

各个实例拥有的数据都互相独立,互不影响

方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节

Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同

在Python中,实例的变量名如果以__开头,就变成了一个私有变量,只有内部可以访问,外部不能访问

为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的slots变量没来限制该class实例能添加的属性

先定义metaclass,就可以创建类,最后创建实例

如果没有错误发生,可以在except语句块后面加一个else,当没有错误发生时,会自动执行else语句

磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象,然后通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象

在Python中,文件读写是通过open()函数打开的文件对象完成的。使用with语句操作文件IO是个好习惯

把变量从内存中变成可存储或传输的过程称之为序列号,序列化之后,可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上

线程是最小的执行单元,而进程由至少一个线程组成

在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁

itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Iterator,只有用for循环迭代的时候才真正计算

IP协议负责把数据从一台计算机通过网络发送到另一台计算机。数据被分割成一小块一小块,然后通过IP包发送出去

IP包的特点是按块发送,途径多个路由,但不保证能到达,也不保证顺序到达

TCP协议是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序到达。

TCP协议会通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到,如果包丢掉了,就自动重发

一个IP包除了包含要传输的数据外,还包含源IP地址和目标IP地址,源端口和目标端口

对于客户端,要主动连接服务器的IP和指定端口,对于服务器,要首先监听指定端口,然后,对每一个新的连接,创建一个线程或进程来处理。通常,服务器程序会无限运行下去

同一个端口,被一个Socket绑定了后,就不能被别的Socket绑定了

使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。但是,能不能到达就不知道了

异步IO,当代码需要执行一个耗时的IO操作时,它只发出IO指令,并不等待IO结果,然后就去执行其他代码了。一段时间后,当IO返回结果时,再通知CPU进行处理

异步IO模型需要一个消息循环,在消息循环中,主线程不断地重复“读取消息-处理消息”这一过程

asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO

@asynicio.coroutine把一个generator标记为corountue类型,然后,我们就把这个coroutine扔到EventLoop中执行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219221.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最简单的 MyBatis Plus 的多表联接、分页查询实现方法

    最简单的 MyBatis Plus 的多表联接、分页查询实现方法一、前言最近在加强ITAEM团队的一个app项目,人员配备:安卓+前端+后台后台DAO层借鉴了华工其他软件开发团队,使用了新颖强大的MyBatisPlus框架,里边有一个类似百度贴吧的发帖子的功能:而如果设计表,应为帖子表t_postidtitle标题content内容xxuser_id用户外键用户表t_userid…

    2022年5月31日
    33
  • 基于51单片机的毕业设计作品_毕业设计能拿公司项目吗

    基于51单片机的毕业设计作品_毕业设计能拿公司项目吗以下是学长亲手整理的C51单片机相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标,对毕设有任何疑问都可以问学长哦!相对容易工作量达标题目新颖,含创新点httpshttpshttpshttpshttpshttps。……

    2022年10月3日
    0
  • 检测数据库连接泄漏的最佳方法

    检测数据库连接泄漏的最佳方法介绍数据库连接不是免费的,这就是首先使用连接池解决方案的原因。但是,单独的连接池并不能解决与管理数据库连接相关的所有问题。应用程序开发人员必须确保Connection在不再需要时关闭每一个。在幕后,连接池提供了一个逻辑事务,当它被关闭时,它会返回到池中,以便其他并发事务可以进一步重用它。当连接被获取而从未被关闭时,就会发生连接泄漏。何时应检测到连接泄漏?每个关系数据库都提供了一种检查底层连接状态的方法,因此可以轻松打开一个新的SQL终端并检查是否有任何悬空连接。但是,这种简约的方法是

    2022年9月19日
    0
  • tcp三次握手四次挥手详解_tcp为什么是四次挥手

    tcp三次握手四次挥手详解_tcp为什么是四次挥手一直都知道TCP建立连接时需要三次握手,释放连接时需要四次挥手,也大概能说出整个过程,但是一直对其中的设计思想理解不深,停留在“只可意会,不可言传”的阶段。这次写一篇博客尝试将其中的思想表达出来。TCP建连三次握手首先解释一下每个步骤的作用:1、a时刻,A准备就绪,发送SYN包给B,尝试建立连接2、b时刻,B收到A发来的SYN包,知道A要请求建连,回…

    2022年9月1日
    2
  • 微信浏览器到底是什么内核?

    微信浏览器到底是什么内核?

    2021年10月23日
    590
  • linux下多线程通信(一)「建议收藏」

    linux下多线程通信(一)「建议收藏」在linux下进行多线程编程,肯定会涉及到线程通信问题,本文主要分析pipe,即管道在多线之间通信实现。#include<unistd.h>intpipe(intfiledes[2]);返回值:成功,返回0,否则返回-1。参数数组包含pipe使用的两个文件的描述符。fd[0]:读管道,fd[1]:写管道两个线程之间通信简单实现,单向pipe_1.c在这里插入代码片…

    2022年6月19日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号