【Python基础】-07面向对象编程基础知识(1)


在这里插入图片描述

1. 类和对象

在Python中,类是一种抽象的概念,用于描述具有相似特征和行为的一组对象。类定义了对象的属性和方法,它是创建对象的蓝图或模板。对象是类的实例,它具体化了类的属性和方法。

1.1 类的定义

在Python中,可以使用class关键字来定义类。类由属性和方法组成,属性用于描述对象的状态,方法用于描述对象的行为。

类名通常采用首字母大写的驼峰命名法。

class Person:
    pass

下面是一个简单的类的定义示例:

# 定义一个【人】的类
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def say_hello(self):
        print(f"Hello, 我叫 {self.name}. 我今年 {self.age} 岁。")

在上述示例中,我们定义了一个名为Person的类。它有两个属性nameage,分别用于表示人的姓名和年龄。还有一个方法say_hello,用于打印出人的自我介绍。

1.2 对象的创建和使用

要创建一个类的对象,我们可以使用类名后面跟着一对括号,并提供所需的参数。创建对象的过程称为实例化。通过实例化,我们可以使用类的属性和方法。

下面是一个创建对象并使用的示例:

person = Person("mingfeng", 25)
print(person.name)  # 输出 "mingfeng"
print(person.age)  # 输出 25
person.say_hello()  # 输出 "Hello, 我叫 mingfeng. 我今年 25 岁。"

在上述示例中,我们通过Person类创建了一个名为person的对象。通过访问对象的属性和调用对象的方法,我们可以获取和操作对象的数据和行为。

1.3 类和对象的案例

让我们通过一个更具体的案例来说明类和对象的使用:

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def get_area(self):
        return self.width * self.height

    def get_perimeter(self):
        return 2 * (self.width + self.height)

# 创建一个矩形对象
rectangle = Rectangle(5, 3)

# 访问对象的属性
print(rectangle.width)  # 输出 5
print(rectangle.height)  # 输出 3

# 调用对象的方法
area = rectangle.get_area()
perimeter = rectangle.get_perimeter()
print(area)  # 输出 15
print(perimeter)  # 输出 16

说明

在上述案例中,我们定义了一个名为Rectangle的类,它表示一个矩形对象。矩形具有宽度和高度两个属性,并提供了计算面积和周长的方法。通过创建Rectangle类的实例,我们可以访问对象的属性(宽度和高度)和调用对象的方法(计算面积和周长)来获取相关的信息。

2. 属性和方法

2.1 属性

类的属性

类的属性是定义在类中的变量,用于存储类的数据。它们属于类本身,而不是类的实例。类的所有实例都可以访问和共享这些属性。

下面是一个简单的示例,展示了如何定义和使用类的属性:

class Circle:
    pi = 3.14

    def __init__(self, radius):
        self.radius = radius

    def get_area(self):
        return self.pi * (self.radius ** 2)

# 访问类的属性
print(Circle.pi)  # 输出 3.14

# 创建对象并访问对象的属性
circle = Circle(5)
print(circle.radius)  # 输出 5

# 通过类名访问类的属性
print(Circle.pi)  # 输出 3.14

在这里插入图片描述

在上述示例中,我们定义了一个名为Circle的类,它具有一个类的属性pi和一个实例的属性radius。类的属性pi是一个常量,用于表示圆的周率。实例的属性radius表示圆的半径。我们可以通过类名Circle访问类的属性pi,也可以通过创建对象circle来访问实例的属性radius。类的属性在所有实例之间共享,而实例的属性是每个对象独立拥有的。

类的属性案例

让我们通过一个具体的案例来说明类的属性的使用:

class Car:
    num_wheels = 4
    fuel_type = "gasoline"

    def __init__(self, brand, model):
        self.brand = brand
        self.model = model

    def start_engine(self):
        print("Engine started.")

# 访问类的属性
print(Car.num_wheels)  # 输出 4
print(Car.fuel_type)  # 输出 "gasoline"

# 创建对象并访问对象的属性
car1 = Car("Toyota", "Camry")
print(car1.brand)  # 输出 "Toyota"
print(car1.model)  # 输出 "Camry"

# 通过对象访问类的属性
print(car1.num_wheels)  # 输出 4
print(car1.fuel_type)  # 输出 "gasoline"

在这里插入图片描述

在上述案例中,我们定义了一个名为Car的类,它具有两个类的属性num_wheelsfuel_type,以及两个实例的属性brandmodel。类的属性表示所有汽车共有的特征,例如轮子数量和燃料类型。实例的属性表示每辆汽车具体的品牌和型号。通过访问类的属性,我们可以获取所有汽车的共有信息。通过创建Car类的实例,我们可以访问每辆汽车的特定信息。

2.2 方法

类的方法是定义在类中的函数,用于操作对象的数据。方法可以访问和修改对象的属性。在Python的面向对象编程中,类的__init__方法和一般方法(也称为实例方法)是常用的概念。它们用于初始化对象的状态和执行特定的操作。

__init__ 方法

__init__ 方法是一个特殊的方法,在创建类的实例时自动调用。它用于初始化对象的属性。通常在__init__方法中为对象的属性赋初值。

案例:

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

person = Person("Mingfeng", 25)
print(person.name)  # 输出 "Mingfeng"
print(person.age)  # 输出 25

在上述案例中,我们定义了一个名为Person的类,该类具有nameage两个属性。在__init__方法中,我们接受nameage作为参数,并将它们分别赋值给对象的nameage属性。通过创建Person类的实例,我们可以访问和打印对象的属性值。

一般方法

一般方法是定义在类中的普通函数,用于操作对象的数据。它们通过接收self参数来访问对象的属性,并执行相应的操作。

案例:

# 定义一个【人】的类
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def say_hello(self):
        print(f"Hello, 我叫 {self.name}. 我今年 {self.age} 岁, 正在学习python编程。")

person = Person("mingfeng", 25)
person.say_hello()  # 输出 "Hello, 我叫 mingfeng. 我今年 25 岁, 正在学习python编程。"

在上述案例中,我们定义了一个名为say_hello的一般方法。该方法通过self参数访问对象的nameage属性,并打印出相应的信息。通过调用该方法,我们可以让对象自我介绍。

需要注意的是,一般方法的第一个参数必须是self,它代表类的实例本身。通过self,我们可以访问对象的属性和其他方法。

综上所述,__init__方法用于初始化对象的属性,一般方法用于执行对象的操作。这些方法在面向对象编程中非常常见,可以使我们更好地组织和管理代码,提高代码的可读性和可维护性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸峰轻云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值