Python类常见面试题:这些坑90%的面试者都栽过
不论校招, 还是社招, 面向对象皆为高频考点。今日, 我梳理了最为常见的面试题以及其坑, 看过之后面试便不会慌了。1. self到底是什么能不用吗面试题 下面的代码会报错吗class A: def method(): print(hello) a A() a.method() # 会怎样答出来的: 在进行的时候给予了但1个却会发出错讯, 规定它要采用0个。因由: 当借由实例去调用方法之际, 会将实例自行当作首个参数予以传入, 哪怕于定义时期并未书写self, 实际上却是传递了一个参数。修复class A: def method(self): # 加上self print(hello) a A() A.method() # 用类调可以不会自动传self a.method() # 实例调self自动传入2. 类变量被实例修改了面试题 运行结果是什么class A: x [1, 2, 3] a1 A() a2 A() a1.x.append(4) print(a1.x) print(a2.x) print(A.x)答案 三个输出都是1, 2, 3, 4缘由在于, x属于类变量, 列表是可变对象, a1.x.(4)对类变量自身进行了修改, 所有实例共同享有同一副本。如果改成a1.x [1, 2, 3, 4] # 这是赋值不是在原列表上修改那时, a1.x转变为实例自身所拥有的属性, 不会再对其他的人产生影响, 赋予数值和进行更改是不同的两件事情, 弄明白这个就不会遭遇失败了。3. super()的作用是什么面试题 下面代码输出什么class A: def __init__(self): print(A) class B(A): def __init__(self): print(B) super().__init__() class C(A): def __init__(self): print(C) super().__init__() class D(B, C): def __init__(self): print(D) super().__init__() d D()答案D B C A? 为何并非是 D 指向 B, 接着 B 指向 A, 随后 A 指向 C ? 此即为那所谓的 MRO方法解析顺序。用 D. 可以看print(D.__mro__) # (, , # , , )所谓super(), 并非是去调用“父类”, 而是去调用MRO当中的下一个类。这是由C3线性化算法所决定的, 在多继承的情况下, 一定要加以注意。4. 的隐藏陷阱面试题 下面的代码有什么问题class Circle: def __init__(self, radius): self.radius radius property def radius(self): return self._radius radius.setter def radius(self, value): if value 0: raise ValueError(半径必须大于0) self._radius value c Circle(5) print(c.radius) # 5 c.radius -1 # ValueError看上去像是没有问题, 实际上存在着一个隐蔽的bug, 就是里面有self.被调用了 的情况, 然而在这个时候, self.是还没有存在的状态呢这段代码能够顺利运行的缘由系于其中仅仅读取了 value, 而并未读取 self。倘若其中存在更为繁杂的逻辑, 且该逻辑依赖于已有的属性, 那么便会出现问题。安全写法def __init__(self, radius): self._radius radius # 直接赋值不走setter5. 抽象类是什么为什么要用面试题 如何让子类必须实现某个方法from abc import ABC, abstractmethod class Animal(ABC): abstractmethod def sound(self): pass # a Animal() # TypeError: Cant instantiate abstract class class Dog(Animal): pass # d Dog() # TypeError: 没实现sound() class Cat(Animal): def sound(self): return 喵 c Cat() #作用是, 用于定义接口规范, 以此强制把子类来进行实现, 进而防止因为“忘了去实现”这种情况引发运行时才出现报错的状况。6.是干嘛的面试题 为什么要用 class A: __slots__ (x, y) def __init__(self): self.x 1 self.y 2 # self.z 3 # AttributeError: A object has no attribute z a A() a.x 10 # # a.z 20 # 不允许新增属性两个作用有所限制的属性: 仅仅能够运用, 在其中所明确规定的名字, 以此来节约内存: 不会去生成, 当存在大量实例的情况下, 内存能够节省许多每个对象大约能节省50%。什么时刻运用呢? 在去构建大量对象之际像是百万级数据类那样的情况运用, 平常的情形下是不用的。7. 类方法 vs 静态方法 vs 实例方法面试高频 说说三者的区别并各举一个使用场景。记忆技巧: 存在需要进行操作的实例数据的情况, 这种情况下对应的是实例方法仅仅只需要类数据的情形, 其对应的是类方法各类数据都不需要然而在逻辑层面归属于这个类的状况, 所对应的是静态方法。8. 的私有属性真的私有吗面试题 真的能保护数据吗class Secret: def __init__(self): self.__password 123456 s Secret() # s.__password # AttributeError print(s._Secret__password) # 123456 竟然能访问真相是, 那种所谓的私有并非真正意义上的私有, 只是有着名字修饰罢了, 具体而言, 是编译器将属性名改成了带有类名前缀的__属性名, 这属于一种“防君子不防小人”的机制, 其目的在于防止子类出现意外覆盖的情况。一句话总结搞清楚类的面试题中, 万变不离其宗的那些内容, 也就是self、MRO、类变量与实例变量、原理, 如此一来, 大部分面试题都能够答上来。收藏这篇面试前翻一遍。关注我陪你从入门到拿Offer。# #面试 #面向对象 #编程进阶

相关新闻

MATLAB小提琴图绘制全攻略:从核密度估计到高级定制

MATLAB小提琴图绘制全攻略:从核密度估计到高级定制

1. 项目概述:为什么你需要小提琴图?如果你用过MATLAB画箱线图,那你肯定遇到过那个经典问题:箱线图把所有数据点都压缩成了几个统计量(中位数、四分位数),虽然能看出分布的中心和离散程度&#x…

2026/8/5 7:35:18 阅读更多 →
电脑开机显示CLIENT MAC ADDR卡住?详解PXE网络启动原理与BIOS启动顺序修复

电脑开机显示CLIENT MAC ADDR卡住?详解PXE网络启动原理与BIOS启动顺序修复

1. 问题现象与根源剖析开机时屏幕上突然跳出“CLIENT MAC ADDR”这么一行英文,紧接着可能就是一连串的十六进制数字,然后电脑卡住不动,或者反复重启,就是进不了我们熟悉的Windows桌面。这个场景,我相信不少朋友&#x…

2026/8/5 7:35:18 阅读更多 →
【硬核C语言】int/char/short底层差异!基础数据存储不只记大小

【硬核C语言】int/char/short底层差异!基础数据存储不只记大小

很多新手学C语言,只会死记:int占4字节、char占1字节、short占2字节。 背得滚瓜烂熟,可写代码时怪事不断: char存个数字直接乱码、short运算结果诡异、int内存占用莫名变大,程序出问题完全摸不着头脑。 我早期写单机程序…

2026/8/5 7:34:17 阅读更多 →

最新新闻

Mac Mouse Fix终极指南:让你的普通鼠标秒变Mac专属神器

Mac Mouse Fix终极指南:让你的普通鼠标秒变Mac专属神器

Mac Mouse Fix终极指南:让你的普通鼠标秒变Mac专属神器 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经为Mac上的第三方鼠…

2026/8/5 19:59:51 阅读更多 →
5分钟掌握:免费歌词获取工具让你轻松下载网易云QQ音乐歌词

5分钟掌握:免费歌词获取工具让你轻松下载网易云QQ音乐歌词

5分钟掌握:免费歌词获取工具让你轻松下载网易云QQ音乐歌词 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器缺少歌词而烦恼吗?想要…

2026/8/5 19:59:51 阅读更多 →
如何高效管理Windows右键菜单:专业清理工具实战指南

如何高效管理Windows右键菜单:专业清理工具实战指南

如何高效管理Windows右键菜单:专业清理工具实战指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否厌倦了每次右键点击文件时,那冗…

2026/8/5 19:59:50 阅读更多 →
WinUtil终极指南:如何用免费工具一键优化Windows系统性能

WinUtil终极指南:如何用免费工具一键优化Windows系统性能

WinUtil终极指南:如何用免费工具一键优化Windows系统性能 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否厌倦了Windows系统…

2026/8/5 19:59:50 阅读更多 →
如何在Windows上获得苹果级字体体验:PingFangSC苹方字体完整教程

如何在Windows上获得苹果级字体体验:PingFangSC苹方字体完整教程

如何在Windows上获得苹果级字体体验:PingFangSC苹方字体完整教程 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 还在为Windows电脑上的中文字…

2026/8/5 19:59:50 阅读更多 →
【YOLO26创新改进】PR 2024顶刊 | 损失函数涨点改进篇 | 使用Slide Loss自适应难样本加权损失函数,改善模型在困难数据子集上的表现,适合人脸检测、密集目标检测、类别不平衡目标检测

【YOLO26创新改进】PR 2024顶刊 | 损失函数涨点改进篇 | 使用Slide Loss自适应难样本加权损失函数,改善模型在困难数据子集上的表现,适合人脸检测、密集目标检测、类别不平衡目标检测

一、本文介绍 ⭐本文在YOLO26模型将Slide Loss引入YOLO26的分类或置信度损失计算,可利用候选框与真实框的匹配质量自适应确定正负样本分界,并对分界附近容易误分类的困难样本赋予更高权重,同时保持远离边界的简单样本以基础权重参与训练,从而缓解单阶段检测器中大量简单背…

2026/8/5 19:58:50 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →