用Python怎样自己写一个obj文件 python obs_python modbus类封装

用Python怎样自己写一个obj文件 python obs_用Python怎样自己写一个obj文件_02

当当当,技术小E又来了!

经过前几次的基础贴的培训

相信很多同学对python的基础知识

已经有了一个简单的认识

那么下面我们来讲一讲

python面向对象程序设计。


用Python怎样自己写一个obj文件 python obs_用Python怎样自己写一个obj文件_03

我们在写程序的时候一般有两种方式:

函数式编程和面向对象式编程。

函数式编程的好处在于:

我们将一个方法给封装起来

这样就可以在接下来的

编程中随取随用了

而面向对象编程实际上可以说是

函数式编程的一个加强版

简单来说就是面向对象编程

将好多函数给放在一起了

然后用一个统一的方法去调用。

先来简单介绍一下

面向对象编程的格式:


用Python怎样自己写一个obj文件 python obs_python贴吧_04

那么上面这个程序就是

一个最简单的面向对象程序了

其中class是一个关键字,代表类

obo是使用的类名(类名可以随便起)

之后我们就看见了一个函数foo

那么在这里我们称之为方法

(记住在写方法的时候括号后面的

第一个参数一定要写self)

这样的话我们的类就写完了

这是一个最简单的类。

接下来我们就要去调用foo函数了

但是这个foo函数是写在类里面

的不能直接调用

需要找一个中间人

我们在上面那个例子中使用的

那个中间人叫ob

通过使用ob.foo()来调用函数。

我们管这个中间人叫做对象

现在大致明白这个面向对象的大致概念

可能会有同学问这个self到底是啥

我们知道这个对象是

根据类实例化出来的

在实际工作中

总不会只建立一个对象吧

这时候为了区分

对象在调用方法的时候

就会把自己给传回去

所以说这个self就是你使用的

那个对象自己

(就像是C++中的this指针)。

有些同学在学C语言或者

C++的时候接触过类

在这些语言的类里面

会有成员变量的东西

这里当然也有,

只不过我们直接使用self来定义

具体用法下面的代码已经给出:


用Python怎样自己写一个obj文件 python obs_python贴吧_05

那么以上就是面向对象程序设计

最为基础的部分了

接下来我们来讲一点更深入的

面向对象有三大特性:

封装,继承,多态

  其中的封装部分我们

已经在上面讲过了

简而言之就是将方法和成员变量

全部都放进类里面

通过对象去调用

保证数据的安全和使用的方便性。

但是上面这个例子中的成员

变量定义的并不是很恰当

我们在这里进行一下修改。

先来讲一下构造方法:

当我们执行ob = obo() 这条语句时

实际上干了两件事

第一件事就是生成了一个对象

第二件就是通过对象

执行类中的一个方法

这个方法就是构造方法,

它有一个特定的名字:


用Python怎样自己写一个obj文件 python obs_面向对象_06

将上述代码重新写了一下

注意到类里面有一个__init__函数了吗

那个就是构造方法。

它是在生成对象的时候自动执行的

我们可以将成员变量的

定义放在那里面。

当然因为是方法

所以同样可以往里面传入参数:


用Python怎样自己写一个obj文件 python obs_面向对象_07

就像上面这个图里面这样

接下来我们来讲一讲继承

简单来说继承的意思是一个类从

另一个类那里把方法给调用过来

调用的那个类称为子类

被调用的类称为父类

将父类的类名放在子类

类名旁边的括号里

就可以实现继承

这样的话子类就可以使用

它父类的所有方法了。

先来看个例子:


用Python怎样自己写一个obj文件 python obs_python modbus类封装_08

如上图所示

类obo1将obo认作父类

这时候o虽然是obo1的对象

但是由于obo1有父类obo

所以就可以使用obo类里面的方法了。


用Python怎样自己写一个obj文件 python obs_面向对象_09

上面我们讲完了继承

那么最后我们来看看多态:

在python里面,多态并不适用

咱们先来看一看在c语言当中

多态是怎么用的吧

我们知道在C语言中

当定义一个变量时

需要指定这个变量的类型

比方说整型,字符型,浮点型。

所以在定义函数的时候

形参前面必须要声明变量的类型

但是我们知道同一个函数有时候

需要处理不同种类的变量

于是多态就这样产生了:

在一个类里面产生了

多个名字相同的方法

但是传回去的参数类型不相同

这就是多态。

如下图所示


用Python怎样自己写一个obj文件 python obs_python modbus类封装_10

接下来我们回过头来看一下python

如果你认真看了前面基础部分的技术贴

就会发现python在定义数据变量时

是不需要声明前面的类型的

你给它赋什么样的值

它就是什么样的类型

那这样的话事情就变得简单了

在python的类里面我们只需要

写一个方法就可以了

形参的类型就视你传的实参来决定。

那么这次的技术贴就到这里了

面向对象的基础知识并不困难

希望同学们可以自己在电脑上

试一试以便更好地掌握哦!


用Python怎样自己写一个obj文件 python obs_python面向对象中变量分为哪几种_11