十条Python面试题陷阱,看看你是否会中招

问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法?

答:这道题的考点是类继承,只要通过__class__ 方法指定类对象就可以了。补充的代码如下:

问题2:请问如何修改以下Python代码,使得代码能够运行?

答:此题考察得是方法对象,为了能让对象实例能被直接调用,需要实现 __call__ 方法,补充代码如下:

问题3:下面这段代码的输出是什么?

答:

此题考察的是new和init的用法,使用 __new__ 方法,可以决定返回那个对象,也就是创建对象之前调用的,这个常见于于设计模式的单例、工厂模式。__init__ 是创建对象是调用的。

问题4:下面这段代码输出什么?

答:

此题考察的是列表和字典的生成。

问题5:下面这段代码输出什么?

答:

此题考察全局变量和局部变量。num 不是个全局变量,所以每个函数都得到了自己的 num 拷贝,如果你想修改 num ,则必须用 global 关键字声明。比如下面这样

问题6:如何使用一行代码交换两个变量值?

答:

问题7:如何添加代码,使得没有定义的方法都调用mydefault方法?

答:

此题的考的是Python的默认方法, 只有当没有定义的方法调用时,才会调用方法 __getattr__。当 fn1 方法传入参数时,我们可以给 mydefault 方法增加一个 *args 不定参数来兼容。

问题8:一个包里有三个模块,mod1.py , mod2.py , mod3.py ,但使用 from demopack import * 导入模块时,如何保证只有 mod1 、 mod3 被导入了。

答:在包中增加 __init__.py 文件,并在文件中增加:

问题9:写一个函数,接收整数参数 n ,返回一个函数,函数返回n和参数的积。

答:

问题10:请问下面的代码有什么隐患?(Python2中)

答:由于变量str是个不可变对象,每次迭代,python都会生成新的str对象来存储新的字符串,num越大,创建的str对象越多,内存消耗越大。

本文由马哥教育Python学员提供支持,如果你在学习Python的过程中遇到了问题,欢迎通过QQ:2282011279 或电话:15652199186 和我联系。

原文地址:http://blog.51cto.com/12592106/2129370

时间: 2024-10-09 10:01:23

十条Python面试题陷阱,看看你是否会中招的相关文章

python公司面试题集锦 python面试题大全

问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的

python 面试题1

python 面试题 - 知识点整理 分类: python面试2013-03-05 15:52 13754人阅读 评论(1) 收藏 举报 python面试题 目录(?)[+] 1. 在判断object是否是class的instances时,type和isinstance函数的区别? type(obj) => <type 'instance'> type(cls) => <type 'classobj'> 由上可知,所有obj type后统一为 instance type

麦子学院—python的潜在陷阱

本文主要是为新手介绍python的潜在陷阱,现在依次看看有哪些潜在的 Python 陷阱:推荐:Python网络编程实战视频(http://www.maiziedu.com/course/python/459-5958/)不知道Python版本这是一个在StackOverflow上反复出现的问题.许多人能写出在某个版本上完美工作的代码,但在他们在自己的系统上安装有不同版本的Python.要确保你知道你正在使用的Python版本.你可以通过下边的代码查看Python版本:$ python--ver

Python面试题 —— 获取列表中位数

中位数是一个可将数值集合划分为相等的上下两部分的一个数值.如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数:如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数.在这个任务里,你将得到一个含有自然数的非空数组(X).你必须把它分成上下两部分,找到中位数. 输入: 一个作为数组的整数(int)列表(list)的. 输出: 数组的中位数(int, float). 范例: get_median([1, 2, 3, 4, 5]) == 3 get_median(

Python面试题整理-更新中

几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路人甲的回答 如何学习Python爬虫[入门篇] - 学习编程 - 知乎专栏 Python常用库整理 - 学习编程 - 知乎专栏 学好Python的11个优秀资源 - 学习编程 - 知乎专栏 在开头依然推荐一个Python面试题整理比较好的网站:GitHub : 关于Python的面试题.同样推荐几道

python 面试题

前段时间面试碰到的一组python面试题,虽然很简单但是特别的基础. 1.Python 如何判断二维数组中是否包含整数? array = [[1, 3, 5.6, 7.2, 8, 9.9], [2.5, 4.7, 6.8, 7.3, 9, 10], [3.7, 6.7, 9.8, 9.9, 11, 12.1]] for i in array: for j in i: if str(j).isdigit(): # 判断是否是整数还可以通过isinstance(j, int) print("二维列表

17道Python面试题,分享给你以防不测!

今天给大家分享的是Python面试题系列的第一篇文章,后续我也会陆续整理Python相关的问题给大家,无论是求职者还是新人都可以通过面试题来考察自己的能力缺陷. 1.Python中pass语句的作用是什么? pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作. 2.Python是如何进行类型转换的? Python提供了将变量或值从一种类型转换成另一种类型的内置函数.比如int函数能够将符合数学格式数字型字符串转换成整数.否则,返回错误信息. 3.Python是如

python面试题总结与分析(一)

Q 1:Python 有哪些特点和优点? 作为一门编程入门语言,Python 主要有以下特点和优点: 可解释 具有动态特性 面向对象 简明简单 开源 具有强大的社区支持 当然,实际上 Python 的优点远不止如此,可以阅读该文档,详细了解: https://data-flair.training/blogs/python-tutorial/ Q 2:深拷贝和浅拷贝之间的区别是什么? 答:深拷贝就是将一个对象拷贝到另一个对象中,这意味着如果你对一个对象的拷贝做出改变时,不会影响原对象.在 Pyt

python面试题六: 剑指offer

面试题3 二维数组中的查找 LeetCode题目:二维数组中,每行从左到右递增,每列从上到下递增,给出一个数,判断它是否在数组中思路:从左下角或者右上角开始比较 def find_integer(matrix, num): """ :param matrix: [[]] :param num: int :return: bool """ if not matrix: return False rows, cols = len(matrix), l