Python中的常见问题

Python 学者小黄 5年前 (2020-09-21) 240次浏览 已收录 0个评论
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。下面介绍一下Python中的常见问题

一、TCP、UDP的区别

TCP:面向连接,保证高可靠性传输层协议

UDP:数据丢失,无秩序的传输层协议

二、 new.init区别,如何实现单例模式,有什么优点?

new是一种静态方法,init是一个实例方法new返回一个创建的实例,init什么都不返回new返回一个cls的实例时后面的init才能
被调用当创建一个新实例时调用new,初始化一个实例时调用init

三、深浅拷贝

浅拷贝只是增加了一个指针指向一个存在的地址,而深拷贝是增加一个指针并且开辟了新的内存,这个增加的指针指向这个新的内存,采用浅拷贝的情况,释放内存,会释放同一内存,深拷贝就不会出现释放同一内存的错误

四、HTTP/IP相关协议,分别位于哪层?

http协议是超文本传输协议,http协议是基于TCP/IP通信协议来传递数据http协议工作与c/s架构上,浏览器作为http的客户端通过URL向http服务端即web服务器发送所用请求。web服务器收到所有请求后,向客户端发送响应信息,http特点是短连接,无状态地址栏键输入URL,按下回车之后经历了什么?
1.浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址
2.解析出IP地址后,根据IP地址和默认端口80,和服务器建立TCP连接
3.浏览器发出读取文件的http请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器
4.服务器对浏览器请求做出响应,并把对应的html文件发送给浏览器5.释放TCP连接6.浏览器将该HMTL渲染并显示内容

五、webscoket

websocket是基于http协议的,可持续化连接轮询:浏览器每隔几秒就发送一次请求,询问服务器是否有新消息长轮询:客户端发起连接后,如果没有消息,就一直不返回response给客户端,直到有消息返回,返回完之后,客户端再次发起连接

六、装饰器

调用装饰器其实是一个闭包函数,为其他函数添加附加功能,不修改被修改的源代码和不修改被修饰的方式,装饰器的返回值也是一个函数对象。有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

七、闭包

1.必须有一个内嵌函数
2.内嵌函数必须引用外部函数的变量
3.外部函数的返回值必须是内嵌函数

八、RabbitMQ

服务器端有Erlang语言来编写,支持多种客户端,只会ajax,用于分布式系统中存储转发消息,在易用性、扩展性、高可用性的方面不俗。connection是RabbitMQ的socket连接,它封装了socket部分相关协议逻辑connectionFactroy为connection的制造工厂channel是我们与RabbitMQ打交道的最重要的一个接口,大部分的业务操作是在chaanel这个接口中完成,包括定义Queue、定义Exchange、绑定Queue与Exchange,发布消息等


IT学者 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python中的常见问题
喜欢 (0)

您必须 登录 才能发表评论!