Python-11 __类__

本文深入解析Python面向对象编程的核心概念,涵盖类定义、对象初始化、继承与多继承、对象属性管理及装饰器应用。从类的创建到实例化,再到如何利用继承重用代码,最后探讨属性读取与装饰器的高级用法。

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

知识点

在 Python 中,所有数据类型都可以视为对象。也可以自定义对象,自定义的对象数据类型就是面向对象中的类(Class)的概念。

  • 类的定义
  • 对象初始化

定义类

使用以下语法定义类:

class nameoftheclass(ParentClass) :
    statement1
    statement2
    statement3

在类的声明中可以写任何 Python 语句,包括函数(在类中称为方法)。

>>> class MyClass(object) :
...     """A simple example class"""
...     i = 12345
...     def f(self) :
...         return 'hello world'

init 方法

类的实例化使用函数符号。只要将类对象看作是一个返回新的类实例的无参数函数即可。

x = MyClass() # 创建一个新的类实例并将该对象赋给变量 x

这个实例化操作创建一个空的对象。如果在类中定义一个名为 __init__() 的特殊方法,可以将其创建为有初始状态的对象。

def __init__(self) :
    self.data = []

在类中定义 __init__() 方法,类的实例化操作会自动为新创建的类实例调用 __init__() 方法。

当然,出于弹性的需要,__init__() 方法可以有参数。事实上,参数通过 __init__() 传递到类的实例化操作上。

>>> class Complex :
...     def __init__(self, realpart, imagpart):
...         self.r = realpart
...         self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)

继承

当一个类继承另一个类时,它将继承父类的所有功能(如变量和方法)。这有助于重用代码。

class MyClass(ParentClass) :
    def __init__(self) :
        ParentClass.__init__(self)

多继承

一个类可以继承自多个类,具有父类的所有变量和方法,语法如下:

class MyClass(Parentclass1, Parentclass2, ...) :
    def __init__(self):
        Parentclass1.__init__(self)
        Parentclass2.__init__(self)
        ...
        ...

删除对象

使用关键字 del 删除一个对象。

>>> s = "I love you"
>>> del s
>>> s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 's' is not defined

del 实际上使对象的引用计数减少一,当对象的引用计数变成零的时候,垃圾回收器会删除这个对象。

属性(attributes)读取方法

在 Python 里直接使用属性就可以了,请不要使用属性(attributes)读取方法(getters 和 setters),更不需要在类中定义属性读取方法。

装饰器

@property 装饰器负责把一个方法变成属性调用的。本质上,装饰器也是一种高阶函数。

使用 @property 装饰器可以更精确的调整控制属性访问权限。

总结

  • 类的定义
  • 对象初始化
  • 类的继承以及多继承
  • 装饰器

返回顶部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值