page contents

Python面向对象:class 定义类与创建对象

今天就聚焦核心实操,用“通俗讲解+分步代码+避坑指南”,手把手教你掌握class定义类、创建对象的全流程,新手跟着敲,就能快速上手,夯实Python面向对象基础!

attachments-2026-04-92dWKStA69eec2ee49022.png今天就聚焦核心实操,用“通俗讲解+分步代码+避坑指南”,手把手教你掌握class定义类、创建对象的全流程,新手跟着敲,就能快速上手,夯实Python面向对象基础!

核心前提:为什么要用class定义类?

在Python中,class是定义类的唯一关键字,它的核心作用是“封装共性”——把同一类事物的属性(特征)和方法(行为)打包在一起,形成一个规范的模板,后续创建对象时直接复用,无需重复编码。

举个简单的例子:我们要处理100个学生的信息,每个学生都有姓名、年龄、班级,都能听课、写作业。如果不用class定义类,就要给每个学生单独写代码,冗余又难维护;而用class定义一个Student类,只需写一次属性和方法,就能快速创建100个学生对象,高效又简洁。

简单说,class就是“创建模板的工具”,学会用class,才算真正迈入Python面向对象的大门。

全程实操:class定义类+创建对象(3步搞定)

class定义类、创建对象的流程非常固定,全程3步,每一步都有明确的规范和技巧,新手重点掌握语法格式和关键细节,就能少踩坑。

1. 第一步:用class定义类(核心语法)

用class定义类的基础语法非常简单,核心结构:class 类名(父类): ,后续缩进内编写属性和方法。其中父类可省略(默认继承object类,新手暂时无需关注)。

关键规范:

① 类名必须遵循“大驼峰命名法”:首字母大写,多个单词首字母均大写(如Student、Dog、Calculator),区分于小写的变量名和函数名;

② 类体必须缩进(4个空格或1个Tab),缩进内的代码都属于这个类;

③ 类中核心包含两部分:属性(描述特征)和方法(描述行为),其中__init__构造方法是必学重点,用来初始化属性。

基础示例(定义一个简单的“图书类”):



# 用class定义图书类,类名Book(大驼峰),默认继承object类class Book:    # __init__构造方法:创建对象时自动执行,用于绑定属性    # self是必传参数,代表当前对象,后续参数是要绑定的属性    def __init__(self, title, author, price):        # 绑定属性:self.属性名 = 参数(将传入的参数赋值给当前对象的属性)        self.title = title    # 书名属性        self.author = author  # 作者属性        self.price = price    # 价格属性    # 自定义方法:描述图书的行为(查看图书信息)    def show_info(self):        # 通过self.属性名,调用当前对象的属性        print(f"书名:{self.title},作者:{self.author},价格:{self.price}元")

补充说明:__init__方法是类的“初始化方法”,无需手动调用,只要创建对象,它就会自动执行,帮我们给对象绑定好属性,避免创建后重复赋值。

2. 第二步:创建对象(实例化类)

创建对象(也叫“实例化类”)的操作非常简单,只需调用类名,并传入__init__方法中要求的属性参数(无需传递self,Python会自动赋值),格式:对象名 = 类名(参数1, 参数2, ...)。

示例(基于上面的Book类,创建3个图书对象):



# 实例化第一个对象:Python入门书book1 = Book(title="Python入门到精通", author="张三", price=59.9)# 实例化第二个对象:数据分析书book2 = Book(title="Python数据分析实战", author="李四", price=79.9)# 实例化第三个对象:面向对象书book3 = Book(title="Python面向对象编程", author="王五", price=69.9)

注意:创建对象时,传入的参数数量、类型,必须和__init__方法中定义的一致(除self外),否则会报错。比如漏传price参数,就会提示“缺少位置参数”。

此时,book1、book2、book3就是3个独立的图书对象,它们都拥有Book类的所有属性(title、author、price)和方法(show_info),但属性值不同,体现了“对象的个性化”。

3. 第三步:调用对象的属性和方法

创建对象后,我们需要通过对象操作属性和方法,核心语法非常固定,记住两个格式就能搞定:

① 调用属性:对象名.属性名(获取或修改属性值);

② 调用方法:对象名.方法名()(注意加括号,触发方法执行)。

示例(操作上面创建的3个图书对象):



# 1. 调用对象的属性(获取属性值)print("第一本书信息:", book1.title, book1.author, book1.price)# 输出:第一本书信息: Python入门到精通 张三 59.9# 2. 修改对象的属性值(个性化修改)book1.price = 49.9  # 将book1的价格修改为49.9print("修改后价格:", book1.price)  # 输出:修改后价格: 49.9# 3. 调用对象的方法(触发行为)book2.show_info()  # 输出:书名:Python数据分析实战,作者:李四,价格:79.9book3.show_info()  # 输出:书名:Python面向对象编程,作者:王五,价格:69.9

小技巧:如果想一次性查看对象的所有属性,可以用print(对象名.__dict__),会以字典形式输出对象的所有属性和对应值,方便调试。

新手必避的5个class使用坑(附解决方案)

刚开始用class定义类、创建对象,新手很容易踩坑,导致代码报错,以下5个常见坑,提前避开,能节省大量调试时间,每个坑都附具体解决方案,遇到直接对照解决。

  • 坑1:定义类时,类名用小写(比如book),不符合规范,且容易和对象名混淆。 解决方案:严格遵循大驼峰命名法,类名首字母大写,比如Book、Student,对象名用小写(比如book1、xiaoming),区分清晰。

  • 坑2:__init__方法漏写self参数,或self参数位置不对(不是第一个参数)。 解决方案:__init__方法的第一个参数必须是self,代表当前对象,不可或缺,也不能调换位置,否则创建对象时会报错。

  • 坑3:创建对象时,手动给self传参,导致报错“takes 1 positional argument but 2 were given”。 解决方案:self是Python自动赋值的,无需手动传递,创建对象时,只需传入__init__方法中除self外的其他参数即可。

  • 坑4:调用方法时忘记加括号(比如book1.show_info),导致输出方法地址而非执行方法。 解决方案:调用类中的方法时,必须加括号(即使没有参数),格式:对象名.方法名(),否则只会返回方法的内存地址,不会执行方法内容。

  • 坑5:修改属性时,直接用“类名.属性名”修改,导致所有对象的属性都被修改。 解决方案:修改属性必须通过“对象名.属性名”,针对单个对象修改;“类名.属性名”修改的是类的全局属性,会影响所有对象。

实战案例:完整演示class定义类与创建对象

结合上面的知识点,我们做一个完整实战:用class定义一个“员工类”,封装员工的属性和方法,然后创建对象、调用属性和方法,新手跟着操作,就能彻底掌握整个流程。



# 1. 用class定义员工类class Employee:    # 初始化属性:姓名、部门、工资    def __init__(self, name, department, salary):        self.name = name          # 姓名        self.department = department  # 部门        self.salary = salary      # 工资    # 方法1:查看员工信息    def show_employee(self):        print(f"姓名:{self.name},部门:{self.department},工资:{self.salary}元")    # 方法2:调整工资    def adjust_salary(self, new_salary):        self.salary = new_salary        print(f"{self.name}的工资已调整为:{self.salary}元")# 2. 创建2个员工对象emp1 = Employee(name="张三", department="技术部", salary=8000)emp2 = Employee(name="李四", department="市场部", salary=7000)# 3. 调用对象的属性和方法# 查看员工信息emp1.show_employee()  # 输出:姓名:张三,部门:技术部,工资:8000元emp2.show_employee()  # 输出:姓名:李四,部门:市场部,工资:7000元# 调整员工工资emp1.adjust_salary(9000)  # 输出:张三的工资已调整为:9000元print("张三调整后工资:", emp1.salary)  # 输出:张三调整后工资: 9000

运行代码后,就能看到员工对象的属性查看、工资调整功能正常执行,整个代码逻辑清晰、可复用——如果后续再添加员工,只需一行代码创建对象,无需重复编写属性和方法,这就是class定义类的核心价值。

核心总结

用class定义类、创建对象,是Python面向对象编程的基础,核心要点总结:

1.  定义类:用class关键字,遵循大驼峰命名法,类体包含__init__构造方法(绑定属性)和自定义方法(描述行为);

2.  创建对象:调用类名,传入__init__方法要求的参数(无需传self),格式:对象名 = 类名(参数);

3.  操作对象:调用属性用“对象名.属性名”,调用方法用“对象名.方法名()”;

4.  避坑关键:记住self的作用、类名规范、方法调用加括号,避免全局修改对象属性。

对于新手来说,不用急于追求复杂的类设计,先熟练掌握“class定义类→创建对象→操作属性和方法”这3个核心步骤,多敲几个案例(比如计算器类、动物类),就能夯实基础,为后续学习继承、封装、多态打下基础。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1999 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1999 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章