A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

公司名称:上海傲梦网络科技有限公司
公司地址:西安雁塔区团结南路中晶科技广场B4层中晶岛
公司规模:500-999人
公司环境:下图
笔试:无
面试环节
1、 Python中的数据类型有哪些?
Int  bool   str   list   tuple    dict    set
2、 什么是闭包函数?
在函数内部嵌套了一个函数,内函数使用了外函数的局部变量,并且外函数返回了内函数的引用,这样就构成了一个闭包
defoutfunc(a,b):
    def innerfunc(x):
        return x*a+b
return innerfunc
3、 什么是装饰器?说几个装饰器的常用场景?
装饰器的作用:在不违反开放封闭的原则下对现有的函数进行功能扩充,比如插入日志、性能测试、事务处理、缓存、权限的校验等场景,有了装饰器就可以抽离出大量的与函数功能本身无关的雷同代码。函数计时的装饰器:
4、 TCP和UDP区别?
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息。
优点:UDP速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送
- 缺点:UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠。
TCP是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手
优点:TCP在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。缺点:TCP相对于UDP速度慢一点,要求系统资源较多。
5、 说说三次握手,四次挥手的过程?
三次握手
1.     建立连接时,客户端发送SYN包到服务器
2.     服务器收到请求后,会向客户端发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
3、客户端收到服务器的SYN+ACK包,向服务器发送一个序列号(seq=x+1),确认号为ack(客户端)=y+1,此包发送完毕,客户端和服务器进入ESTAB_LISHED(TCP连接成功)状态,完成三次握手
四次挥手
1. 首先,客户端发送一个FIN,用来关闭客户端到服务器的数据传送,然后等待服务器的确认
2. 服务器收到这个FIN,它发送一个ACK,确认ack为收到的序号加一。
3. 关闭服务器到客户端的连接,发送一个FIN给客户端
4. 客户端收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加一。客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,才进入CLOSED状态。
5. 服务器只要收到了客户端发出的确认,当前连接立即进入CLOSED状态。
6、 面向对象中怎么实现只读属性?
属性私有化
- property
7、单例模式的应用场景有哪些?
       单例模式应用的场景一般发现在以下条件下
1. 资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。
2. 控制资源的情况下,方便资源之间的互相通信。如线程池等。
   - 网站的计数器
   - 应用配置
   - 多线程池
   - 数据库配置,数据库连接池
   - 应用程序的日志应用
8、什么是死锁?
       若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,互相干等着,程序无法执行下去,这就是死锁。
GIL全局解释器锁(cpython):限制多线程同时执行,保证同一时刻只有一个线程执行,所以cpython里的多线程其实是伪多线程!所以Python里常常使用协程技术来代替多线程,协程是一种更轻量级的线程,进程和线程的切换时由系统决定,而协程由我们程序员自己决定,而模块gevent下切换是遇到了耗时操作才会切换。
三者的关系:进程里有线程,线程里有协程
9、简单说下同步,异步,阻塞,非阻塞?
- 同步:多个任务之间有先后顺序执行,一个执行完下个才能执行。
- 异步:多个任务之间没有先后顺序,可以同时执行
- 阻塞:卡住调用者,调用者不能继续往下执行
- 非阻塞:调用者不会卡住,可以继续执行,就是说非阻塞的。
10、知道线程池吗?有什么特点?
1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控
11、Python中类方法、类实例方法、静态方法有何区别?
- 类方法:是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为 cls,
  表示类对象,类对象和实例对象都可调用;
- 类实例方法:是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身;
- 静态方法:是一个任意函数,在其上方使用@staticmethod”进行装饰,可以用对象直接调用,
  静态方法实际上跟该类没有太大关系

面试总结:面试的是一个Python讲师岗位,问的问题比较多,偏基础的比较多,保持心态,有礼貌,认真回答。

133 个回复

正序浏览
json0314 来自手机 中级黑马 2018-11-29 07:34:13
133#
棒棒哒
回复 使用道具 举报

努力向前~
回复 使用道具 举报
小西西哦 发表于 2018-10-26 10:48
666666666666666666666666666666

努力向前~
回复 使用道具 举报
哦嗨呦 发表于 2018-10-25 18:23
顶!!!!!!!

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报
dajiahao 发表于 2018-10-25 17:02
9999999999999999999999999

努力向前~
回复 使用道具 举报
huochao 发表于 2018-10-25 16:53
厉害了!厉害了!厉害了!厉害了!厉害了!厉害了!厉害了!厉害了!厉害了! ...

努力向前~
回复 使用道具 举报
回复 使用道具 举报

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报
回复 使用道具 举报

努力向前~
回复 使用道具 举报
1467584 发表于 2018-10-24 14:20
优秀…………………………………………………………

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报
zhaosongzhi 发表于 2018-10-23 16:59
非常有用 感谢!!!!!

努力向前~
回复 使用道具 举报

努力向前~
回复 使用道具 举报
指间 发表于 2018-10-23 16:33
6666666666666666666666

努力向前~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马