Python 面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 面向对象相关的知识,希望对你有一定的参考价值。
Python面相对象概念
- 面向过程:根据业务逻辑从上到下写垒代码
- 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
- 面向对象:对函数进行分类和封装,让开发“更快更好更强...”
面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
while True : if cpu利用率 > 90 % : #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90 % : #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80 % : #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 |
随着时间的推移,开始使用了函数式编程,增强代码的重用性和可读性,就变成了这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def 发送邮件(内容) #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 while True : if cpu利用率 > 90 % : 发送邮件( ‘CPU报警‘ ) if 硬盘使用空间 > 90 % : 发送邮件( ‘硬盘报警‘ ) if 内存占用 > 80 % : 发送邮件( ‘内存报警‘ ) |
今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面向对象编程也支持函数式编程
创建类和对象
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
- class是关键字,表示类
- 创建对象,类名称后加括号即可
类是一系列对象共有的特征(变量的定义)与技能(函数的定义)的结合体
class Foo: def Bar(self): print(123) def Hello(self,name): print(name) f = Foo() f.Hello(‘123‘)
面向对象三大特性
面向对象的三大特性是指:封装、继承和多态。
一、封装
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:
- 将内容封装到某处
- 从某处调用被封装的内容
#!/usr/bin/Python # -*- coding:utf-8 -*- class Foo: def __init__(self,name,age):#Foo类的构造方法 self.name=name self.name=name def cc(self): print(self.name) return self obj1=Foo(‘han‘,20)#创建Foo类对象
练习一:在终端输出如下信息 小明,10岁,男,上山去砍柴 小明,10岁,男,开车去东北 小明,10岁,男,最爱大保健 老李,90岁,男,上山去砍柴 老李,90岁,男,开车去东北 老李,90岁,男,最爱大保健
class Foo:
def __init__(self, name, age ,gender):
self.name = name
self.age = age
self.gender = gender
def kanchai(self):
print "%s,%s岁,%s,上山去砍柴" %(self.name, self.age, self.gender)
def qudongbei(self):
print "%s,%s岁,%s,开车去东北" %(self.name, self.age, self.gender)
def dabaojian(self):
print "%s,%s岁,%s,最爱大保健" %(self.name, self.age, self.gender)
xiaoming = Foo(‘小明‘, 10, ‘男‘)
xiaoming.kanchai()
xiaoming.qudongbei()
xiaoming.dabaojian()
laoli = Foo(‘老李‘, 90, ‘男‘)
laoli.kanchai()
laoli.qudongbei()
laoli.dabaojian()
面向对象
对象的使用:只有一种,就是属性引用 #实例化 class Chinese: country = ‘China‘ # Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) def __init__(self, name, age, sex): # p1.Name=name;p1.Age=age,p1.Sex=sex self.Name = name self.Age = age self.Sex = sex def talk(self): print(‘%s is talking‘ %self.Name) # p1=Chinese(‘egon‘,‘18‘,‘male‘) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) # p2=Chinese(‘alex‘,‘9000‘,‘female‘) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) #对象的使用:只有一种,就是属性引用 # print(p1.Name) # print(p1.Age) # print(p1.Sex) # print(p2.Name) # print(p1.country) # print(p2.country)
以上是关于Python 面向对象的主要内容,如果未能解决你的问题,请参考以下文章