Python 类(class)

在 Python 中,类(Class)是 “面向对象编程(OOP)” 的核心概念。类就像是一个模板,用于创建具有特定属性(数据)和行为(方法)的对象。通过类,我们可以将相关的数据和功能组织在一起,从而提高代码的模块化、可重用性和可维护性。

Python 定义类

从上一节可以知道,如果想要创建一个对象,首先要定义一个类。在 Python 中,我们可以使用 class 这个关键字来定义一个类。

语法:

class 类名 :
    属性名 = 值
    def 方法名 (self):
        ……

说明:

对于一个类来说,一般都具有 “属性” 和 “方法”。其中,属性的定义跟变量的定义相似,而方法的定义跟函数的定义相似。不过对于方法的定义,要求传入 self 作为第 1 个参数,这个是语法规定,不然就会报错。类的定义语法比较复杂,我们还是结合下面的示例多多理解一下。

示例:Python 定义一个类

# 定义一个类
class Hero:
    name = '船长'
    type = '力量型'
    def skill(self):
        print('放大招啦!')

# 实例化对象
h = Hero()
# 调用对象的属性
print(h.name)
# 调用对象的方法
h.skill()

运行结果如下。

船长
放大招啦!

分析:

我们都知道,使用函数需要两步:第一步是 “定义函数”,第二步是 “调用函数”。实际上,使用对象也需要两步:第一步是 “类的定义”,第二步是 “类的实例化”。

在这个示例中,我们首先使用 class 关键字定义了一个类,这个类的名字叫 Hero。不过此时只有一个 “抽象” 的类,却没有 “具体” 的对象。实际上,对象是由类来创建的。

注意: 类名的首字母一定要大写。对于类名来说,如果包含多个单词,则应该采用 “大驼峰命名法”,比如 DotaHero、UserInfo。

h=Hero() 表示使用 Hero 这个类来实例化一个对象,这个对象名叫 “h”。实例化一个对象,也就是创建一个对象,我们一定要搞清楚 “实例化对象” 指的是什么意思。此时,h 这个对象就具备 Hero 类的属性和方法。准确来说,类和对象之间是通过 “实例化” 关联起来的(这句话很重要)。

很多编程语言如 C++、Java 等,对于类的实例化,都需要用到 new 这个关键字,但在 Python 中不需要。也就是说,h= new Hero() 这种方式是错误的。

获取对象的属性,或者执行对象的方法,我们都是通过点运算符(.)来实现的,语法如下。

对象名.属性名
对象名.方法名 ()

像上面这个例子,h.name 表示调用对象的 name 属性,h.skill() 表示调用对象的 skill() 方法。

“类” 和 “对象” 这两个是面向对象中最重要的概念。对于类和对象之间的关系,我们可以这样去比喻:类就像是一个模板,通过这个模板,我们可以做出各种各样的对象,如下图所示。例如,你可以通过 Hero 类生成一个英雄 A,也可以通过 Hero 类生成一个英雄 B。虽然每个英雄的姓名和类型不同,但是它们都有共同的特征,那就是都拥有 “姓名” 和 “类型” 这两个属性。

Python 类与对象

Python 类的 3 种创建方式

可能有小伙伴会问:“Python 在创建一个类时,类名后面加上 ‘ () ’ 和没加上 ‘ () ’ ,两者有什么区别呢?” 其实这两个是没有区别的。对于创建一个类,下面 3 种方式是等价的。

# 方式 1
class A:
    ……

# 方式 2
class A():
    ……

# 方式 3
class A(object):
    ……

上一篇: Python 面向对象

下一篇: Python 构造函数

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号