面试十次Python工程师,十次都是回去等消息,总结了十大陷阱!
人生存在不可预测的变数,每个人都会存在几次跳槽,程序员更是如此。每跳一次就多一次某某公司经历,多一年开发经验。别以为这是说笑,事实就是这样的!
作为一个Python程序员,不管你应聘web开发还是爬虫工作,或者数据分析、自动化运维。这些陷阱你总会碰到。
总结了Python面试的十个大陷阱,如果你是Python程序员,那么请保存好!
问题1:修改下面的Python代码,使代码调用类A的show方法?
答:考的是类继承,只要通过__class__ 方法指定类对象即可。补充的Python代码如下所示:
问题2:修改Python代码使它可以跑起来?
答:考的是方法对象,需要实现 __call__ 方法才能能让对象实例能被直接调用:
问题3:这段代码的输出结果?
答:
__init__ 是创建对象是调用的。
问题4:这段Python代码会输出什么?
答案:考验你对列表和字典的生成的理解。
问题5:此Python代码得出的结果?
答案:
考验全局变量和局部变量的理解。num并不是一个全局变量,因此每一个函数都得到了自己的 num 拷贝,想修改 num ,就必须用 global 关键字声明。
问题6:怎样实现用一行Python代码交换两个变量值?
答案:
完全是考验基本功了这道题。
问题7:怎么添加代码,让没有定义的方法全部调用mydefault方法?
答案:
考验Python的默认方法, 必须当没有定义的方法调用时,才会调用 __getattr__方法。当 fn1 方法传入参数的时候,能够帮 mydefault 方法增加一个 *args 不定参数用来兼容。
问题8:一个包里有三个模块
答案:在包中增加 __init__.py 文件,而且在文件中增加:
问题9:写一个函数,接收整数参数 n ,返回一个函数,函数返回n和参数的积。
问题10:如果此段Python代码是在Python2中,那么会出现什么BUG?
答案:考验Python2的基础知识,你以为2020年Python2不再使用是针对所有人吗?NO!企业里面的那么多程序不是三年两载考验改变的,不过是企业付费而已。因为变量str是个不可变对象,当迭代时,python就会生成新的str对象来存储新的字符串,num越大,创建的str对象越多,内存消耗就越大!
上一篇: php堆排序实现原理与应用方法
下一篇: 线程池