赞
踩
Python 很容易学会,但很难掌握。
你可以在几天内了解它的基本语法,但是要能够用 Python 开发出足够好的商业软件,多年的实践是必须的。
因为,无论你使用哪种编程语言,你都必须对其复杂的内部机制有足够的了解,才能写出健壮的程序。
本文分享 10 个针对高级开发人员的 Python 面试题。它可以测试你对 Python 内部机制理解的程度。
面试官:
请解释在 Python shell 解释器上执行的代码的以下结果:
- >>> a=256
- >>> b=256
- >>> a is b
- True
- >>> x=257
- >>> y=257
- >>> x is y
- False
回答:
这是因为 Python 中的整数缓存机制。为了节省时间和内存成本,Python 总是预先加载 [-5, 256] 范围内的所有小整数。
因此,[-5, 256] 中的所有整数都已经保存在内存中。当声明此范围内的新整数变量时,Python 只是将缓存的整数引用到它,不会创建任何新对象。
因此,对结果的解释是:
当变量 a 和 b 分配给 256 时,它们被引用到存储 256 的相同内存位置。他们指向同一个对象。
当变量 a 和 b 被分配给 257 时,它们是不同内存位置的两个不同对象,因为 257 不在小整数缓存范围内。
由于 is 运算符要比较两个变量的内存位置,a is b 应该输出 True ,x is y 应该输出 False。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。