常见面试题整理--Python代码篇
希望此文可以长期更新并作为一篇Python的面试宝典。每一道题目都附有详细解答,以及更加详细的回答链接。此篇是代码篇,上一篇是:Python概念篇 两者结合效果更佳。
喜欢听音乐的猿们,欢迎关注我近新开的专栏:音乐推荐-知乎专栏
所谓单例就是一个类从始至终只能产生一个实例。
方法一:使用__new__方法
在__new__方法中把类实例绑定到类变量_instance上,如果cls._instance为None表示该类还没有实例化过,实例化该类并返回。如果cls_instance不为None表示该类已实例化,直接返回cls_instance
方法二:使用装饰器(decorator)
方法四:共享属性
所谓单例就是所有的引用(实例,对象)拥有相同的属性和方法,同一个类的实例天生都会有相同的方法,那我们只需要保证同一个类所产生的实例都具有相同的属性。所有实例共享属性简单直接的方法就是共享__dict__属性指向。
方法五:Python模板
(六)、Python的函数参数传递
(七)、类变量和实例变量
类变量就是供给类使用的变量,实例变量就是供给实例使用的变量。看以下代码
- 上半部分:name是字符串(不可更改对象),实例变量p1.name一开始指向了类变量name="aaa",但是在实例的作用域把类变量的引用改变了,就变成了一个实例变量self.name不再引用Person的类变量name
- 下班部分:name是list(可更改对象)
方面一:lambda表达式:体现原理就是python允许lambda关键字创建匿名函数,所谓匿名就是python不会创建名称空间,lambda表达式返回可调用的函数对象,这些都符合函数式编程的思想。
方面二:内建函数:filter()、reduce()、map()
(九)、 以下代码将输出什么?(考察list)
(十)、 以下代码将输出什么?(考察)
更详细的解答可以看这里:Python中后期绑定(late binding)是什么意思?
本文参考文献资料:
「1」七、PYTHON 一些基础面试题目总结
「2」Python单例模式的4种实现方法
「3」python 面试题 - 知识点整理
「4」很全的 Python 面试题 - Python - 伯乐在线
「5」Python 函数式编程 - BeginMan - 博客园
学习编程,欢迎关注专栏:学习编程 - 知乎专栏
相关文章