当前位置:   article > 正文

10 个高频 Python 面试题_python高级面试题目

python高级面试题目

Python 很容易学会,但很难掌握。

你可以在几天内了解它的基本语法,但是要能够用 Python 开发出足够好的商业软件,多年的实践是必须的。

因为,无论你使用哪种编程语言,你都必须对其复杂的内部机制有足够的了解,才能写出健壮的程序。

本文分享 10 个针对高级开发人员的 Python 面试题。它可以测试你对 Python 内部机制理解的程度。

一、Python中的整数缓存机制

面试官:

请解释在 Python shell 解释器上执行的代码的以下结果:

  1. >>> a=256
  2. >>> b=256
  3. >>> a is b
  4. True
  5. >>> x=257
  6. >>> y=257
  7. >>> x is y
  8. 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。

二、如何避免

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/831754
推荐阅读
相关标签
  

闽ICP备14008679号