03如何用Python定义一个简单的类,比如定义一个“学生”类?
文章目录
问题: 如何用 Python 定义一个简单的类,比如定义一个 “学生” 类?
👇 点击展开/折叠 面试背诵模板(建议先背这个)
类的标准语法结构与命名规范
Python 类通过 class ClassName: 声明,继承自 object(Python 3 中默认隐式继承)。类体包含属性和方法,实例属性通常在 __init__ 中定义,方法则通过 def 定义在类体内部。类名必须遵循大驼峰命名法(CapWords),如 StudentInfo,模块内部私有类可前置单下划线 _。
1 | # 基础定义(无任何装饰器或继承) |
init 构造方法与 self 的实质绑定
__init__ 不是构造器(构造器是 __new__),而是初始化器。它在对象内存分配(__new__)完成后执行,负责填充数据。self 参数是实例方法的约定占位符,解释器自动传入调用对象,若忘记写 self,实例调用会抛出 TypeError。
1 | class Student: |
对象实例化与属性访问机制
实例化过程相当于调用类对象:stu = Student("张三", 18)。Python 自动执行 Student.__new__(cls) 分配内存,再执行 Student.__init__(self, "张三", 18) 初始化。实例属性可通过点号运算符访问(stu.name),也可通过 getattr() / setattr() 动态操作。若尝试访问不存在的属性,将抛出 AttributeError。
1 | # 创建多个独立对象(内存隔离) |
常见扩展:__str__ 与类型注解(提升可读性)
为便于调试和展示,可重写 __str__ 或 __repr__ 方法。同时,为增强代码可维护性,推荐为参数和属性添加类型注解(Type Hints),虽然运行时无效,但 IDE 和静态检查工具(如 mypy)可帮助提前发现类型错误。
1 | class Student: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!