标签:container __init__ 封装 end 服务器 int 面相对象 alt string
面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。
|
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 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)
标签:container __init__ 封装 end 服务器 int 面相对象 alt string
原文地址:http://www.cnblogs.com/hanjialong/p/6959402.html