栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python面试题杀手锏(三)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python面试题杀手锏(三)

文章目录
        • 请写出一个函数满足以下条件
        • 谈下python的GIL
        • 简述面向对象中_new和init_区别

请写出一个函数满足以下条件
  • 该函数的输入是一个仅包含数字的list,输出一个新的list,其中每一个元素要满足以下条件:
    • 1、该元素是偶数
    • 2、该元素在原list中是在偶数的位置(index是偶数)
def num_list(num): 
	return [i for i in num if i %2 ==0 and num.index(i)%2==0] 

num = [0,1,2,3,4,5,6,7,8,9,10] 
result = num_list(num) 
print(result)
谈下python的GIL
  • GIL是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行 python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程 无法运行,等该线程运行完后其他线程才能运行。
  • 如果线程运行过程中遇到耗时操作,则 解释器锁解开,使其他线程运行。
  • 所以在多线程中,线程的运行仍是有先后顺序的,并不 是同时进行。多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,
  • 所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大
简述面向对象中_new和init_区别
  • 1、 _new_至少要有一个参数cis
    • 代表当前类,此参数在实例化时由Python解释器自 动识别
  • 2、 _new_必须要有返回值,返回实例化出来的实例
    • 这点在自己实现_new_时要特 别注意,可以return父类
    • (通过super(当前类名,cis)) _new_出来的实例
    • 或者直接 是object的_new_出来的实例
  • 3、 _init_有一个参数self
    • 就是这个_new」g回的实例,_吊计_在_酒可_的基础上 可以完成一些其它初始化的动作
    • _init_不需要返回值
  • 4、 如果_new_创建的是当前类的实例,会自动调用_init_函数
    • 通过return语句里面 调用的_new_函数的第一个参数是cis来保证是当前类实例
    • 如果是其他类的类名,;那么实际创建返回的就是其他类的实例
    • 其实就不会调用当前类的_init_函数,也不会 调用其他类的_init_函数。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号