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大特性&类和对象&类的定义和使用&构造方法和析构方法的主要内容,如果未能解决你的问题,请参考以下文章