python数据处理与科学计算_Python科学计算与数据处理7:类和对象

本文介绍了Python中的面向对象编程,包括类、对象、继承、多态、抽象和封装等概念。通过示例讲解了如何创建类、实例化对象、定义实例变量和类变量、使用`__init__`方法、自定义方法、类的属性以及私有属性和方法。还探讨了单一继承和多重继承,以及方法重写和运算符重载。
摘要由CSDN通过智能技术生成

class

类与对象

Python是面向对象的语言(object-oriented),同样面向对象的语言还有C++,Java等;与之相对的是面向过程的语言(procedural),例如C语言。前面的教程中,我们也主要是采用了面向过程的编程方式,在这一节中,将为大家介绍面向对象的编程方法,其实现途径就是使用类(class)和对象(object)。

在面向对象的编程中,我们主要处理的不是前面介绍的那样传统的一行行的代码,而是来模拟现实世界中的不同的事物,即对象。一个对象可以有属性和行为,也可以和其他对象相联系和发生相互作用。例如,一只小狗可以有属性(年龄、体重等)和行为(吠、跑、打滚等)。面向对象的编程方式基于以下四个核心特征:

多态(Polymorphism)

继承(Inheritance)

抽象(Abstraction)

封装(Encapsulation)

核心概念

这里我们简要介绍一下上述这些重要的概念。

类:类是创建对象的蓝图,我们可以把类理解为一个生产对象的工厂。类提供了创建对象的模板,通过方法来指定对象的行为,通过属性来指定其状态。

对象:对象就是类的一个实例,一个对象可以有状态(属性)和行为。

继承:在面向对象的编程中,子类可以从父类继承属性和方法。继承可以分为单一继承和多重继承。单一继承是指一个子类只继承一个父类,而多重继承指一个子类可以继承多个父类。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。在这里我们可以理解为,同一个方法有不同的输出。

抽象:这个不知道具体该怎么表达,直接引用一段"Learn Python in 7 Days (Mohit, Bhaskar N. Das)"里的原文“Here, we hide the necessary details and are only interested in showing the relevant details to the other intended user. Here, by other intended user we mean another software application, or another class, or other client who will be the end users of the program.”

封装:封装是指将类的方法的细节进行隐藏,对外界来说,类就像一个“黑盒子”。封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。

本节的部分内容直接参考了菜鸟教程。

创建类

Python中创建类的语法非常简单:

class ():

'''statements'''

空类

空类是最简单的类,我们在这里创建一个空类:

class Student():

'''An empty class.'''

pass

Student

上面这个类中没有任何内容,用pass关键字来起到一个占位的作用,Student后面的括号也可以省略,第一行三撇号'''里面的语句为类的文档(可选)。类可以看作是创建实例的蓝图,即使是空类也可以。实际上,空类在我们后面做科研数据处理的过程中有很重要的应用,它可以作为将要分析的数据的一个容器,我们后面会讲到。下面我们就用空类Student来创建实例:

student1 = Student()

student2 = Student()

print student1

print student2

从上面的输出结果我们看到所创建的两个实例(instance),而且这两个实例在内存中存储在不同的地址上。

实例变量

实例变量是指某个具体实例(对象)特有的变量。例如,针对上面创建的空类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值