Python类和对象入门指南:掌握面向对象编程基础

季宁
季宁
发布时间:2026-10-12 | 2人浏览过
原创

本文系统梳理Python面向对象编程的基础逻辑,重点演示如何使用class关键字定义类,并通过实例化生成对象。详细解析内置构造函数__init__()的属性赋值原理、方法中self参数的指向作用,以及动态增删改查对象属性的实际操作。附带完整可运行代码与预期输出对照,帮助开发者快速掌握类与对象的核心特性。

理解Python类与对象

Python 属于面向对象的编程语言,程序中的绝大多数实体都可以视为对象,且自带属性与方法。类(Class)可以理解为创建对象的“蓝图”或工厂模板,而对象则是根据该蓝图生成的具体实例。掌握类与对象的使用,是实现模块化设计与代码复用的关键。

第1步:定义类并实例化对象

目的:掌握类模板声明与实例化语法。动作:使用 class 关键字声明结构,通过类名加括号实例化。参数:无。完成状态:成功打印出模板默认返回值。

class MyClass:
    x = 5

# 实例化对象
p1 = MyClass()
print(p1.x)

运行上述代码后,控制台将输出 5。此处通过点号语法直接访问了类模板中定义的公共属性。

第2步:使用 __init__() 初始化属性

目的:为实例注入独立初始状态。动作:在类内定义 __init__ 方法,将外部传入的参数绑定至当前实例。参数:name, age 等自定义键值。完成状态:调用 print 验证属性是否按预期加载。

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("Bill", 63)
print(p1.name)
print(p1.age)

代码执行结果为:

Bill
63

每当通过 Person() 创建新实例时,__init__() 会自动接收对应参数并完成内部绑定。

第3步:绑定方法与理解 self 参数

目的:封装对象行为并明确上下文引用关系。动作:在类中定义函数,确保第一个形参始终指向调用该方法的当前实例。参数:self(支持替换为任意合法标识符)。完成状态:通过对象调用方法并正确拼接上下文变量输出结果。

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def myfunc(self):
    print("Hello my name is " + self.name)

p1 = Person("Bill", 63)
p1.myfunc()

运行后将打印 Hello my name is Bill。self 仅代表“当前对象”自身的引用,并非 Python 保留字。您可以将其替换为其他名称(如 mysillyobject 或 abc),只要在定义和使用时保持前后一致即可:

class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("Bill", 63)
p1.myfunc()

尽管参数名可自定义,强烈建议遵循官方规范使用 self,以提升团队代码的可读性与一致性。

第4步:动态修改与删除对象属性

目的:调整运行时数据或释放无用对象内存。动作:通过 obj.attr=val 覆盖现有属性,或使用 del 关键字彻底移除。参数:目标属性名或对象实例。完成状态:修改后打印显示新值;删除后再次读取触发明确异常。

# 修改属性值
p1.age = 40
print(p1.age)

此时 p1 的年龄属性将更新为 40,执行 print 会输出 40。

继续执行删除操作:

# 删除指定属性
try:
    del p1.age
    print(p1.age)
except AttributeError as e:
    print(f"删除成功,读取失败:{e}")

# 删除整个对象
try:
    del p1
    print(p1)
except NameError as e:
    print(f"对象已销毁,引用失败:{e}")

由于 age 已被物理移除,第二次 print 语句会抛出 AttributeError: 'Person' object has no attribute 'age'。同理,直接使用 del p1 会彻底销毁该实例变量,再次引用时抛出 NameError。注意:在生产环境中随意删除关键业务对象的属性可能导致依赖链断裂,建议在操作前评估模块间的引用关系。

第5步:处理无内容类的语法规范

目的:满足空结构体的语法合法性要求。动作:编写 class 后接 pass 语句。参数:无。完成状态:解释器不再报语法错误,类可正常被实例化。

class Person: 
    pass

在 Python 中,类定义体不允许完全为空,否则解释器会抛出 SyntaxError。如果出于占位、后续扩展或框架模板的需要,暂时无法编写具体内容,必须使用 pass 语句作为占位符。这样即可合法创建基础类结构,后续可随时补充属性与方法。

以上就是 Python类和对象入门详解的详细内容,更多关于Python面向对象编程进阶技巧的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表