经典7大Python面试题!希望帮助到想找工作的你!

Python面试(一)之交换变量值

Python中还有更简洁的更具Python风格的实现,如下

Python的字节码

dis是个反汇编工具,将Python代码翻译成字节码指令。这里的输出如下

Python面试(二) is 和 == 的区别

例子:

is 和 == 的解释

好了,看明白上面的解释后,我们来看下前面的几个例子

打印出 id(a) 和 id(b) 后就很清楚了

总结一下

Python面试(三)可变对象和不可变对象

而 == None背后调用的是__eq__,而__eq__可以被重载

is not None但 == None的例子

开始本篇的正题

例子

再来看一个列表的例子

上面对a修改元素、添加元素,变量a还是指向原来的对象

理解了上面不可变对象和可变对象的区别后,我们再来看一个有趣的问题

明明group1和group2是不同的对象(id值不同),为什么调用group2的add_member方法会影响group1的members

Python面试(四)连接字符串用join还是+

其实很简单

这样对于不同的group对象,它们的members也是不同的对象

所以不会再出现更新一个group对象的members也会更新另外一个group对象的members了。

两者的结果是一样,那么考虑这样一个问题,这两者在性能上有区别吗?

上面的程序有如下的输出

Python面试(五)理解__new__和__init__的区别

上面的代码会输出如下的结果

例子:

上面的代码输出如下的结果

先来看Singleton

再来看下工厂模式的实现

上面的代码输出

如果不用with,我们可能要用下面的代码实现类似的功能

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容