华为od 面试八股文_Python_06_含答案

下面整理一份 Huawei OD(外包)技术面试常见 Python 八股文(第 06 部分)。内容围绕 Python 核心原理 + 面试高频知识点,每题附简要答案,方便快速复习。


一、什么是 GIL?

GIL 是 全局解释器锁(Global Interpreter Lock)

在 CPython 中:

  • 同一时间只允许 一个线程执行 Python 字节码
  • 多线程无法真正并行执行 CPU 密集任务

作用:

  • 简化内存管理
  • 避免线程安全问题

结论:

场景推荐
IO密集多线程
CPU密集多进程

二、Python 多线程 vs 多进程

线程:

模块:

threading

特点:

  • 共享内存
  • 切换开销小
  • 受 GIL 限制

进程:

模块:

multiprocessing

特点:

  • 独立内存
  • 真正并行
  • 开销较大

三、什么是生成器(Generator)

生成器是 惰性生成数据的迭代器

关键字:

yield

示例:

def gen():
    for i in range(3):
        yield i

特点:

  • 节省内存
  • 按需生成数据

四、什么是迭代器(Iterator)

迭代器对象必须实现:

__iter__()
__next__()

示例:

class MyIter:
    def __iter__(self):
        return self
    def __next__(self):
        return 1

五、生成器 vs 迭代器

特性生成器迭代器
创建方式yield自定义类
实现复杂度简单较复杂
常用程度较少

六、什么是装饰器?

装饰器是 在不修改函数代码的情况下扩展功能

示例:

def log(func):
    def wrapper():
        print("call function")
        func()
    return wrapper

使用:

@log
def hello():
    print("hello")

七、Python 的深拷贝和浅拷贝

浅拷贝:

copy.copy()

深拷贝:

copy.deepcopy()

模块:

copy

区别:

类型行为
浅拷贝只复制第一层
深拷贝递归复制

八、Python 内存管理机制

Python 使用:

1️⃣ 引用计数
2️⃣ 循环引用检测
3️⃣ 分代垃圾回收

模块:

import gc

九、什么是 Python 的魔法方法?

魔法方法是 以双下划线开头和结尾的方法

示例:

__init__
__str__
__len__
__add__

用途:

  • 运算符重载
  • 对象行为控制

十、什么是 Python 的上下文管理器?

上下文管理器用于 自动管理资源

关键语法:

with

示例:

with open("file.txt") as f:
    data = f.read()

核心方法:

__enter__()
__exit__()

十一、Python 的 lambda 表达式

匿名函数:

lambda x: x+1

示例:

sorted(data, key=lambda x: x.age)

十二、Python 中 list、tuple、set、dict 区别

类型特点
list有序、可重复
tuple不可变
set无序、不重复
dictkey-value

十三、Python 的鸭子类型(Duck Typing)

原则:

如果像鸭子一样走路和叫
那它就是鸭子

含义:

Python 不关注对象类型,只关注行为。


十四、Python 中的单例模式

示例:

class Singleton:
    _instance = None
    def __new__(cls):
        if not cls._instance:
            cls._instance = super().__new__(cls)
        return cls._instance

十五、Python 如何实现线程安全?

常见方法:

  • Lock
  • RLock
  • Semaphore

模块:

threading

示例:

lock = threading.Lock()

with lock:
    pass

十六、Python 中的协程

协程用于 异步编程

核心框架:

asyncio

示例:

async def main():
    await task()

特点:

  • 高并发
  • 单线程

十七、Python 模块和包

模块:

一个 .py 文件

包:

一个包含 __init__.py 的目录

十八、Python 的 MRO(方法解析顺序)

MRO 决定 多继承时方法查找顺序

查看:

Class.__mro__

算法:

C3 Linearization

十九、Python 的闭包

闭包是:

函数 + 引用的外部变量

示例:

def outer(x):
    def inner():
        return x
    return inner

二十、Python 的虚拟环境

虚拟环境用于 隔离项目依赖

常见工具:

  • virtualenv
  • Conda

创建:

python -m venv venv

总结

华为 OD Python 面试常见考点:

类型知识点
语言基础list、dict、tuple
函数lambda、闭包
OOP单例、MRO
内存GC、引用计数
并发线程、进程、协程
高级装饰器、生成器

如果你需要,我可以继续整理 华为 OD Python 面试最全 100 题(带解析),里面包括:

  • 华为机试常见算法题
  • Python 高频八股
  • 真题类型(字符串 / DFS / 动态规划)
  • OD 面试通过率最高的准备路线。
文章已创建 5074

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部