关于Python

Python中常用的7种数据类型

	数字(Number): 	    整数, 浮点数
	布尔(Boolean): 	    True和False
	字符串(String):	    Uniconde字符序列, 在引号内包含
	列表(list): 		有序的值的序列
	元组(Tuple): 		有序的值的序列且不可改变
	字典(Dictionarie): 无序的键值对的组合
	集合(Set): 		    无序的不含重复值的序列

-----------------------------------------------------------------------------------------

python常用的三方模块有哪些

requests	它是一个Python第三方库,处理URL资源特别方便
Pygame		Python游戏设计模块
Chardet 	字符编码探测器,可以自动检测文本 网页编码

-----------------------------------------------------------------------------------------

Python内置模块有哪些

random  os  json  datetime

-----------------------------------------------------------------------------------------

什么是装饰器,原理应用场景及项目中哪些地用到

在不改变原代码的情况下给函数添加新的功能

可以在外层函数加上时间计算函数,计算函数运行时间
计算函数运行次数
可以用在框架的路由传参上
缓存,实现缓存处理

-----------------------------------------------------------------------------------------

什么是递归,哪些业务用到递归

递归,就是在运行的过程中调用自己

-----------------------------------------------------------------------------------------

说一下python中的多继承

一个类继承自多个类就是多继承,它将具有多个类的特征

-----------------------------------------------------------------------------------------


is和==的区别是什么

is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同

 is 用于判断两个变量引用对象是否为同一个
 == 用于判断引用变量的值是否相等

-----------------------------------------------------------------------------------------

range和xrange的区别是什么?

只有在python2中才有xrange和range,python3中没有xrange
在python2中,range得到的是一个列表,xrange得到的是一个生成器对象
在python3中,range其实是py2中的xrange,因为使用生成器可以节约内存

----------------------------------------------------------------------------------------


深浅拷贝区别

深拷贝相当于复制对象的内容
浅拷贝相当于复制对象的内存地址

----------------------------------------------------------------------------------------


说一下你对面向对象的理解

面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体

----------------------------------------------------------------------------------------


面向对象的五大原则是什么

单一职责原则	一个类,最好只做一件事,只有一个引起它的变化
开放封闭原则	软件实体应该是可扩展的,而不可修改的
里氏代换原则	所有使用基类的地方必须能够透明的使用其子类的对象
依赖倒置原则	高层模块不依赖于底层模块,都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象
接口隔离原则	使用多个小的专门的接口,而不要使用一个大的总接口

----------------------------------------------------------------------------------------


tcp和udp的区别

TCP面向连接  UDP是无连接的
TCP提供可靠的服务,UDP不可靠
UDP具有较好的实时性,工作效率比TCP高
TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
TCP对系统资源要求较多,UDP对系统资源要求较少

---------------------------------------------------------------------------------------

线程、进程、协程的区别

先有进程,然后进程可以创建线程,线程是依附在进程里面的, 线程里面可以包含多个协程 

进程是操作系统资源分配的基本单位
线程是cpu调度的基本单位
协程是一种用户态的轻量级线程,协程的调度完全由用户控制

----------------------------------------------------------------------------------------

列举python中的魔法方法

__init__	初始化方法
__str__	打印
__new__	类的构造器

----------------------------------------------------------------------------------------


什么是元类

实例化得到的类叫做元类

----------------------------------------------------------------------------------------

什么是反射

反射指的是运行时获取对象类型定义信息也叫做自省

----------------------------------------------------------------------------------------

什么是python的自省

运行时能够获知对象的类型

----------------------------------------------------------------------------------------

说一下python中的迭代器和生成器

在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法
生成器通过生成器函数产生,生成器函数可以通过def语句来定义,但是不用return返回,而是用yield一次返回一个结果,在每个结果之间挂起和继续它们的状态,来自动实现迭代协议

---------------------------------------------------------------------------------------


什么是元组,和列表的区别是什么

元组是一个与列表类似的集合,元组是不可变的,所以不能对元组完成排序,也不能追加和删除元素

----------------------------------------------------------------------------------------

类属性与实例属性

类属性,在类里面,函数外面定义的属性,是类对象的属性,可以被所有的实例对象共享
实例属性,在__init__函数里定义的属性,是单个实例对象特有的属性,不同的实例之间互不影响

----------------------------------------------------------------------------------------

类方法与实例方法、静态方法

类方法,使用@classmethod装饰的方法,第一个参数为当前类cls, 可以被类对象、实例对象引用
实例方法,在类中定义的普通方法,第一个参数为当前实例对象self,  可以被类对象、实例对象引用
静态方法,使用@staticmethod装饰的方法,参数不需要传cls或者self,可以自行决定传递的参数,可以被类对象、实例对象引用

----------------------------------------------------------------------------------------

什么是并行?什么是并发? Python的多线程属于哪种,为什么?

并发: 任务数大于cpu的核数,多个任务轮流执行
并行: 任务数小于或者等于cpu的核数,多个任务一起执行

python的多线程属于并发,在python解释器内部有一个GIL,所有线程必须申请到该锁才可以继续执行

----------------------------------------------------------------------------------------

python 的内存管理

	1.引用计数:		赋值 计数器+1,删除-1
    2.垃圾回收:		用来回收不可用的变量值所占用的内存空间
    3.内存池机制:    将不用的内存放到内存池,不反还给操作系统

----------------------------------------------------------------------------------------


缓存穿透、缓存雪崩、缓存击穿

缓存穿透
	概念:访问一个不存在的key,缓存不起作用
	解决:将查到的空值写进缓存,设置较短过期时间
缓存雪崩
	概念:大量的key设置了相同的过期时间,导致缓存在同一时刻全部失效
	解决:缓存过期时间加上一个随机值
缓存击穿
	概念:一个存在的key,在缓存过期的一刻,有大量请求
	解决:SETNX设置一个短期key锁住当前key的访问,过期后使用单个线程重建缓存

----------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值