python OOP

本文探讨Python中类的概念,包括如何创建和管理对象,以及支持继承的特性。介绍了构造函数__init__的作用,以及类与模块的主要区别。重点讲解了运算符重载,即如何使自定义类的行为与内置类型一致,提升代码的一致性和易用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概括地讲,类就是一些函数的包,这些函数大量使用并处理内置对象类型。不过类的设计是为了创建和管理新的对象,并且它们也支持继承。这是一种代码定制和复用的机制。在python中,OOP完全可选,并且在初学阶段不需要使用类。实际上,可以用较为简单的结构,例如函数,甚至简单顶层脚本代码,这样就可以做很多事。

class C1(C2, C3):
    def __init__(self, who):
        self.name = who
l1 = C1('bob')
l2 = C1('mel')
print(l1.name)

每次从类产生实例时,python会自动调用名为__init__的方法。新实例会如往常那样传入__init__的self参数。由于__init__方法的运行时机,它也称为是构造函数。

类与模块3个不同之处

1、支持多个对象的产生
2、命名空间继承
3、运算符重载

类可以截获python运算符

运算符重载就是让类写成的对象,可截获并响应应用在内置类型上的运算:加法切片打印点号运算等。

虽然我们可以把所有类行为实现为方法函数,运算符重载则让对象和python的对象模型更紧密地结合起来。此外,因为运算符重载,让我们自己的对象行为就像内置对象那样,这可促进对象接口更为一致并更易于学习,而且可让对象由预期的内置类型接口的代码处理。
1、以双下划线命名的方法 (__X__) 是特殊钩子。python运算符重载的实现是提供特殊命名的方法来拦截运算。python语言替每种运算和特殊命名的方法之间,定义了固定不变的映射关系。
2、当实例出现在内置运算时,这类方法会自动调用。
3、类可覆盖多数内置类型运算。有几十种特殊运算符重载的方法的名称,几乎可截获并实现内置类型的所有运算。它不仅包括表达式,而且像打印和对象建立这类基本运算也包括在内。
4、运算符覆盖方法没有默认值,而且也不需要。
5、运算符可让类与python的对象模型相集成。

运算符重载是可选的功能。因此我们不会在本书中深入讨论python每个可用的运算符重载方法。不过有个运算符重载,你可能会在每个实现的python类中遇见:__init__方法,也称为构造函数方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值