集团站切换校区

验证码已发送,请查收短信

图标

学习文章

当前位置:首页 > >学习文章 > >

{人工智能}python之面向对象编程

发布时间: 2018-08-17 21:11:11

6.1 实验介绍

6.1.1 关于本实验

本实验主要介绍了 Python 面向对象编程的相关知识点和简单操作。

6.1.2 实验目的

1.理解 Python 面向对象编程的含义。

2.掌握和 Python 面向对象编程相关的操作。


6.2 实验任务配置

6.2.1 概念知识

1. 面向对象编程——Object Oriented Programming,简称 OOP,是一种程序设计思想。OOP

把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

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

2. 面向对象技术简介

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

实例变量:定义在方法中的变量,只作用于当前实例的类。




继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个 Dog 类型的对象派生自 Animal 类,这是模拟"是一个(is-a)"关系(例图,Dog 是一个 Animal)。

实例化:创建一个类的实例,类的具体对象。方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

6.2.2 实验内容

步骤 1 创建和使用类

创建 Dog 类。

根据 Dog 类创建的每个实例都将存储名字和年龄。我们将赋予了每条小狗蹲下(sit())和打滚(roll_over())的能力:

class Dog():

"""一次模拟小狗的简单尝试"""

def init (self,name,age):

"""初始化属性 name 和 age"""

self.name = name self.age = age def sit(self):

"""模拟小狗被命令时蹲下"""

print(self.name.title()+"is now sitting")

def roll_over(self):

"""模拟小狗被命令时打滚"""

print(self.name.title()+"rolled over!")

步骤 2 访问属性

我们再来看一个完整的实例:

class Employee:

'所有员工的基类'

empCount = 0

def init (self, name, salary): self.name = name

self.salary = salary Employee.empCount += 1

def displayCount(self):

print("Total Employee %d" % Employee.empCount ) def displayEmployee(self):

print("Name : ", self.name, ", Salary: ", self.salary)

"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000)

"创建 Employee 类的第二个对象"

emp2 = Employee("Manni", 5000) emp1.displayEmployee()




emp2.displayEmployee()

print("Total Employee %d" % Employee.empCount)

执行以上代码输出结果如下:

Name : Zara ,Salary: 2000 Name : Manni ,Salary: 5000 Total Employee 2

步骤 3 类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

在 python 中继承中的一些特点:

1:在继承中基类的构造(  init  ()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。

2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数。

3:Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。

class Parent: # 定义父类

parentAttr = 100

def init (self):

print("调用父类构造函数")

def parentMethod(self):

print('调用父类方法')

def setAttr(self, attr):

Parent.parentAttr = attr def getAttr(self):

print("父类属性 :", Parent.parentAttr)

class Child(Parent): # 定义子类

def init (self):

print("调用子类构造方法")

def childMethod(self):

print('调用子类方法')

c = Child() # 实例化子类c.childMethod() # 调用子类的方法c.parentMethod() # 调用父类方法

c.setAttr(200) # 再次调用父类的方法 - 设置属性值

c.getAttr() # 再次调用父类的方法 - 获取属性值

以上代码执行结果如下: 调用子类构造方法

调用子类方法调用父类方法父类属性 : 200




步骤 4 类属性和方法

类的私有属性:

 private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self. private_attrs。

类的方法

在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数。

类的私有方法

 private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self. private_methods。

class JustCounter:

 secretCount = 0 # 私 有 变 量

publicCount = 0 # 公开变量

def count(self):

self. secretCount += 1

self.publicCount += 1 print(self. secretCount)

counter = JustCounter() counter.count() counter.count() print(counter.publicCount)

print(counter. secretCount) # 报错,实例不能访问私有变量


上一篇: {Java}Maven的简单使用

下一篇: {HTML5}基础核心-第一节-上

十年老品牌
QQ咨询:450959328 微信咨询:togogozhong 咨询电话:020-38289118 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!