从零开始重新学习 Python 3 - 面向对象编程 2:深入理解类与对象,玩转面向对象编程!

  • 公众号:人生只不过是一场投资
  • 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。

还记得上节课我们学习了如何创建类和对象吗?

这次,我们将更深入地探索类与对象的奥秘,掌握面向对象编程的核心技能! 🚀

前言

上一节课,我们学习了面向对象编程的基本概念,包括:

  • 类 (Class): 对象的蓝图,定义了对象的属性和方法。
  • 对象 (Object): 类的实例,拥有类定义的属性和方法。

这次,我们将学习更深入的内容,例如:

  • 构造函数 (__init__) 和析构函数 (__del__)
  • 实例属性和类属性
  • 实例方法、类方法和静态方法

一、 构造函数 (__init__) 和析构函数 (__del__)

1.1 构造函数 (__init__)

构造函数是类的一个特殊方法,用于在创建对象时初始化对象的属性。

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

#  创建 Dog 对象
my_dog = Dog("Buddy", 3)

print(f"My dog's name is {my_dog.name}.")
print(f"He is {my_dog.age} years old.")

__init__ 方法中, self 参数表示当前创建的对象,我们使用 self.nameself.age 来访问和设置对象的属性。

1.2 析构函数 (__del__)

析构函数是类的一个特殊方法,用于在对象被销毁时执行一些清理工作,例如关闭文件、释放资源等。

class MyFile:
    def __init__(self, filename, mode):
        self.filename = filename
        self.mode = mode
        self.file = open(filename, mode)

    def __del__(self):
        self.file.close()
        print(f"File '{self.filename}' closed.")

二、 实例属性和类属性

2.1 实例属性

实例属性是属于每个对象自己的属性,在构造函数 __init__ 中定义。

class Dog:
    def __init__(self, name, age):
        self.name = name  #  实例属性
        self.age = age     #  实例属性

2.2 类属性

类属性是属于类的属性,所有对象共享,在类中定义,但在任何方法之外。

class Dog:
    species = "Canis lupus familiaris"  #  类属性

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

print(Dog.species)  #  输出:Canis lupus familiaris

三、实例方法、类方法和静态方法

3.1 实例方法

实例方法是属于对象的方法,第一个参数必须是 self,表示当前对象。

class Dog:
    # ...

    def bark(self):
        print("Woof!")

3.2 类方法

类方法是属于类的方法,第一个参数必须是 cls,表示当前类。

class Dog:
    # ...

    @classmethod
    def get_species(cls):
        return cls.species

3.3 静态方法

静态方法既不属于类也不属于对象,只是一个普通的函数,放在类中只是为了逻辑上的组织。

class Dog:
    # ...

    @staticmethod
    def is_valid_age(age):
        return 0 <= age <= 20

总结

  • 构造函数 (__init__) 用于初始化对象属性,析构函数 (__del__) 用于清理资源。
  • 实例属性属于对象,类属性属于类。
  • 实例方法操作对象,类方法操作类,静态方法与类和对象无关。

掌握了这些知识,你对面向对象编程的理解又更进了一步! 继续加油吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ょ镜花う水月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值