当前位置:首页 > 天道酬勤 > 正文内容

pocsuite3(poco支持)

张世龙2021年12月21日 11:19天道酬勤1170

从Python入门到写POC系列文章,这是IC春秋论坛作家“EXP1ore”BB DZX原创的完整教程。 想系统地学习Python技能的伙伴不要错过。

1、第一次知道OOP和班级

面向对象编程——面向对象编程,简称OOP,是编程思想。 OOP以对象为程序的基本单位,一个对象包含数据和操作数据的函数。

在面向过程的编程中,将计算机程序视为一系列指令的集合,即按照一系列函数的顺序执行。 为了简化编程,在面向过程中通过将函数划分为子函数,也就是将大块函数划分为小块函数来降低系统的复杂性。

在面向对象编程中,计算机程序被视为一系列对象的集合,每个对象都可以接收和处理来自其他对象的消息。 计算机程序的运行是指一系列消息在各个对象之间传递。

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

类(Class )是面向对象编程(OOP,Object-Oriented Programming )实现信息封装的基础。 类是用户定义的类型,也称为类型。 每个类都包含一组数据说明和传递操作数据或消息的函数。 类的实例称为对象。

2、新类型和旧类型

我们先来看看两者的区别。 首先是旧类型,旧类型也称为经典类型。

class demo1:pass以这种方式定义简单的旧类并将其实例化。

演示1=演示1 (类型1 )类型类演示1._类_类_主_ .演示1 at 036反馈F8类型) )演示1

DEMO1是实例(既是实例也是对象)。 每个对象都有__class__属性,指示其类型。 到了Python2.2以后,将会有新的类。

类演示2 (对象) :通过演示2=演示2 )演示2._类_类' _主_ .演示2 '类型)类'

(1)旧式等级, __class__和type ) )的类型不同,但新型等级相同;

(2)新类型的类在类的名称之后) object )这是继承的类的操作,也是基本的操作。

3、定义类

定义新类的方法

第一种方法:

classdemo (对象) :通过第二种方法:

_ _ metaclass _ _=typeclassdemo :通过4,创建类

写一个简单的例子吧:

# # coding=utf-8 _ _ metaclass _=typeclasstudents 3360 def _ init _ (自我,名称) :自我名称=名称宣言

PS :类中的函数参数必须包含自变元。 另外,缺省值作为第一个参数紧随其后。 def __init__是一个称为构造函数(初始化函数)的特殊函数。

这意味着在实例化过程中,将值作为类的初始化内容提供给参数name,同时通过name参数传递值,使其成为类和实例的属性。

demo=students(bazong ) )打印演示.名称) 9502.163.com) )。

这样就决定了这个班级的基本属性,加深了理解:

# #-* -编码: ut

F-8 -*-__metaclass__ = typeclass students: def __init__(self,name): self.name = name def Name(self): return self.namestudent = students('MOMO') #将它实例化name = student.Name() #调用函数print 'This student is my goddess ------',nameprint student.name #实例的属性

运行一下:

为何self有时必须用,有时却不需要?

其实,self不用非得写成self,写成其它的也可以,这只是约定俗称吧。

总而言之:

(2)self的名字并不是规定死的,但是最好还是按照约定是用self;

(3)self总是指调用时的类的实例。

5、继承

“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。

在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。

先举一个简单例子:

# -*- coding: UTF-8 -*-__metaclass__ = typeclass students: def speak(self): print "Hello momo" def height(self): print "MOMO's height is 1.70m"class goddess(students): def height(self): print "MOMO's height is 1.80m"if __name__ == '__main__': demo = goddess() demo.height() demo.speak()

这就是继承。有个小疑问,为啥是1.80m不是1.7m呢?

因为继承了students,所以goddess这个类就有了students的所有函数(方法)和属性,但是如果有同样的名称方法(函数),那么就会显示goddess中的方法,这叫做方法重写。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26278.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。