Python 面试常见问题解析
在当今的编程领域中,Python 凭借其简洁易读的语法、丰富强大的库以及广泛的应用场景,成为了众多开发者和企业的首选编程语言之一。无论是初入职场的新手,还是经验丰富的编程达人,在 Python 面试中都可能会遇到各种问题。下面,我们就来探讨一些 Python 面试中高频出现的问题以及它们的关键要点。
一、基础语法相关问题
1. Python 中深拷贝和浅拷贝的区别是什么?
- 关键要点:浅拷贝是指创建一个新的对象,但是它包含的元素是对原始对象中元素的引用。也就是说,当修改新对象中的可变元素时,原始对象中的对应元素也会被修改。而深拷贝则是递归地复制对象及其包含的所有元素,创建一个完全独立的副本,修改新对象不会影响原始对象。
- 示例代码:
import copy
# 浅拷贝示例
original_list = [[1, 2], [3, 4]]
shallow_copy = copy.copy(original_list)
shallow_copy[0][0] = 99
print(original_list) # 输出: [[99, 2], [3, 4]]
# 深拷贝示例
original_list = [[1, 2], [3, 4]]
deep_copy = copy.deepcopy(original_list)
deep_copy[0][0] = 99
print(original_list) # 输出: [[1, 2], [3, 4]]
2. Python 中if __name__ == '__main__'的作用是什么?
- 关键要点:当 Python 解释器执行一个 Python 脚本时,它会定义一些特殊的变量。__name__就是其中之一,如果这个脚本是直接运行的,那么__name__的值会被设置为__main__;如果这个脚本是被其他模块导入的,那么__name__的值就是这个脚本的模块名。if __name__ == '__main__'语句的作用就是判断当前