Python--面向对象3大特性&类和对象&类的定义和使用&构造方法和析构方法

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python--面向对象3大特性&类和对象&类的定义和使用&构造方法和析构方法相关的知识,希望对你有一定的参考价值。

1. Python–面向对象程序设计


面向对象是程序开发领域中的重要思想,这种思想模拟了人类认识客观世界的逻辑,是当前计算机软件工程学的主流方法。

类是面向对象的实现手段。


1.1 面向对象3大特性


1.1.1 封装

在这里插入图片描述


1.1.2 继承

在这里插入图片描述


1.1.3 多态

在这里插入图片描述


1.2 类和对象


1.2.1 类

从具体的事物中把共同的特征抽取出来,形成一般的概念称为“归类”,忽略事物的非本质特牲,关注与目标有关的本质特征,找出事物间的共性,抽象出一个概念模型,就是定义一个类。

在面向对象的方法中,类是具有相同属性和行为的一组对象的集合,它提供一个抽象的描述,其内部包括属性和方法两个主要部分,它就像一个模具,可以用它铸造一个个具体的铸件。在这里插入图片描述


1.2.2 对象

对象是现实世界中可描述的事物,它可以是有形的也可以是无形的,从一本书到一家图书馆,从单个整数到繁杂的序列等都可以称为对象。

万物皆对象

在这里插入图片描述

对象是构成世界的一个独立单位,它由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一个独立整体。
在这里插入图片描述


1.3 类的定义和使用

在这里插入图片描述
在这里插入图片描述


1.4 构造函数(方法)与析构函数(方法)


1.4.1 构造函数

每个类都有一个默认的__init__()方法。

  • 如果定义类时显式地定义__init__()方法,则创建对象时Python解释器会调用显式定义的__init__()方法;
  • 如果定义类时没有显式定义__init__()方法,那么Python解释器会调用默认的__init__()方法。

init()方法按照参数的有无(self除外)可分为有参构造方法和无参构造方法。
在这里插入图片描述

前面在类中定义的属性是类属性,可以通过对象或类进行访问;在构造方法中定义的属性是实例属性,只能通过对象进行访问。


1.4.2 示例: 定义一个类Information,在该类中显式地定义一个带有3个参数的__init__()方法

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


info = Information('杜甫', 20)

1.4.3 Python的垃圾回收机制

Python中的垃圾回收主要采用的是引用计数。

引用计数是一种内存管理技术,它通过引用计数器记录所有对象的引用数量,当对象的引用
计数器数值为0时,就会将该对象视为垃圾进行回收。

1.4.4 getrefcount()函数

getrefcount()函数是sys模块中用于统计对象引用数量的函数,其返回结果通常比预期的结果大1。

这是因为getrefcount()函数也会统计临时对象的引用。

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


info = Information('杜甫', 20)

print(sys.getrefcount(info))

在这里插入图片描述


1.4.5 析构方法

当一个对象的引用计数器数值为0时,就会调用__del__()方法,这个方法就是类的析构方法。

import sys


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

    def __del__(self):
        print("对象被释放")


info = Information('杜甫', 20)

print(sys.getrefcount(info))

在这里插入图片描述


以上是关于Python--面向对象3大特性&类和对象&类的定义和使用&构造方法和析构方法的主要内容,如果未能解决你的问题,请参考以下文章

C++类和对象(上篇)

Python----面向对象异常处理反射单例模式

Python基础-第六天-面向对象编程

Python 之面向对象:类和对象调用类中的变量和方法

类和对象(上)

类和对象(上)