每年3-4月是跳槽的高峰期,无论是应聘Python网页开发、爬虫工程师、数据分析,还是自动化运维都涉及到一些基础知识!挑了一些基本的Python面试题,看看你能不能答出来,说不定面试的同学可以用上!问题一:如何修改下面的Python代码,让下面的代码调用A类的show方法?答:本题考点是类继承,只要通过__class__方法指定类对象即可。补充代码如下:问题2:如何修改下面的Python代码,使代码可以运行?答案:本题考查方法对象。为了让对象实例能够被直接调用,需要实现__call__方法。补充代码如下:问题3:下面代码的输出结果是什么?答:本题考查new和init的用法。使用__new__方法,您可以决定返回哪个对象,该对象在创建对象之前调用。这在设计模式中的单例模式和工厂模式中很常见。__init__是在创建对象时调用的。问题4:下面的代码输出什么?答案:本题考查列表和字典的生成。问题5:下面的代码输出什么?答案:本题考查全局变量和局部变量。num不是全局变量,所以每个函数都有自己的num副本,如果要修改num,必须用global关键字声明。比如下面的问题6:如何用一行代码交换两个变量值?Answer:问题7:如何添加代码让所有没有定义的方法都调用mydefault方法?答:本题中的test是Python的默认方法。__getattr__方法只有在没有定义的方法调用时才会被调用。fn1方法传入参数时,我们可以在mydefault方法中加入一个*args可变参数,以实现兼容。问题8:一个包中有mod1.py、mod2.py、mod3.py三个模块,但是使用fromdempackimport*导入模块时,如何保证只导入mod1和mod3。答案:在包中添加__init__.py文件,在文件中添加:问题9:编写一个函数,接收一个整数参数n,返回一个返回n与参数的乘积的函数。答:问题10:以下代码有哪些隐患?(Python2)答:由于变量str是一个不可变对象,每次迭代,python都会生成一个新的str对象来存放新的字符串。num越大,创建的str对象越多,内存消耗也越大。
