Python基础面试题下

1.函数装饰器有什么作用?请列举说明?
2.Python 垃圾回收机制?
3.魔法函数 call怎么使用?
4.如何判断一个对象是函数还是方法?
5.@classmethod 和 @staticmethod 用法和区别
6.Python 中的接口如何实现?
7.Python 中的反射了解么?
8.metaclass 作用?以及应用场景?
9.hasattr()、getattr()、setattr() 的用法
10.请列举你知道的 Python 的魔法方法及用途。
11.如何知道一个 Python 对象的类型?
12.Python 的传参是传值还是传址?
13.Python 中的元类 (metaclass) 使用举例
14.简述 any() 和 all() 方法
15.filter 方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
16.什么是猴子补丁?
17.在 Python 中是如何管理内存的?
18.当退出 Python 时是否释放所有内存分配?
19.如何交换字典{“A”:1, “B”:2}的键和值
20.如何打乱一个列表的元素
21.给定两个list A和B,找出相同元素和不同元素
22.对字符串ilovepython进行反转
23.Python递归的最大层数
24.内存泄漏是什么?如何避免
25.写一个计时器记录方法执行性能的装饰器
26.解释同步、异步、阻塞、非阻塞
27.isinstance作用及应用场景
28.什么是反射?以及应用场景
29.静态方法和类方法区别
30.面向对象深度优先和广度优先是什么?
31.字符串、列表、元组、字典每个常用的5个方法?
32.with语句有什么作用,请用代码解释
33.Python中如何实现多线程
34.什么是僵尸进程和孤儿进程,以及如何避免僵尸进程
35.Python中序列化和反序列化pickle了解吗
36.什么是Python中的猴子补丁
37.Python中使用的zip函数是什么
38.编写程序,查找文本中最长的单词
39.Python模块间循环引用的问题,如何避免它
40.Python中的闭包是什么
41.4G内存怎么读取一个5G的数据
42.init和new的区别
43.求10的阶乘
44.dump.loads与dump.load的区别

### Python 基础知识面试常见问题及答案 #### namedtuple 的作用和应用场景 `namedtuple` 是 `collections` 模块的一部分,它允许创建具有命名字段的元组子类。这使得数据更加易读,并且可以通过名称而不是索引来访问元素。例如,在处理数据库记录时,可以定义一个名为 `Record` 的 `namedtuple` 来表示每条记录,从而提高代码可维护性和清晰度[^1]。 ```python from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(1, y=2) print(p.x, p.y) # 输出: 1 2 ``` #### deque 数据结构的特点及其优势 `deque`(双端队列)同样来自 `collections` 模块,支持从两端高效地添加或移除元素。相比于列表对象,当需要频繁操作序列头部时性能更优。适用于实现栈、队列等场景下的先进先出(FIFO) 或后进先出(LIFO)。 ```python from collections import deque d = deque([1, 2, 3]) d.appendleft(0) print(d) # 输出: deque([0, 1, 2, 3]) d.popleft() print(d) # 输出: deque([1, 2, 3]) ``` #### Counter 类的功能描述 `Counter` 提供了一种方便的方式来统计哈希表中元素的数量。对于计数任务而言非常实用,如单词频率分析、字符出现次数统计等问题都可以借助此工具快速解决。 ```python from collections import Counter c = Counter(['a', 'b', 'c', 'a', 'b', 'b']) print(c['b']) # 输出: 3 print(dict(c)) # 输出: {'a': 2, 'b': 3, 'c': 1} ``` #### defaultdict 和 OrderedDict 的区别 - **defaultdict**: 当字典键不存在时会自动调用指定类型的构造函数来初始化默认值;简化了某些逻辑判断过程。 - **OrderedDict**: 记录插入顺序,在遍历过程中保持原有次序不变。Python 3.7 版本以后内置 dict 已经实现了有序特性,但在特定情况下仍可能需要用到 OrderedDict。 ```python from collections import defaultdict, OrderedDict dd = defaultdict(int) for word in ["apple", "banana", "cherry"]: dd[word] += 1 od = OrderedDict([('apple', 5), ('banana', 3)]) ``` #### GIL (全局解释器锁) 的概念与影响 CPython 解释器中有这样一个机制叫做 GIL(Global Interpreter Lock),用来保护共享资源免受并发修改的影响。这意味着在同一时间点上只允许单一线程执行 Python 字节码指令,因此即便是在多核处理器环境中也不能真正意义上做到并行计算 CPU 密集型任务[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值