Python - 面对对象(基础)
一. 概述
面向过程:根据业务逻辑从上到下写垒代码编程
函数式:将某功能代码封装到函数中,往后便无需重复编写,仅调用函数便可函数
面向对象:对函数进行分类和封装,让开发“更快更好更强...”学习
面向过程编程(Object Oriented Programming,OOP,面向对象程序设计) 最易被初学者接受,其每每用一长段代码来实现指定功能,开发过程当中最多见的操做就是粘贴复制,即:将以前实现的代码块复制到现需功能处。设计
二. 建立类和对象
面向对象编程是一种编程方式,此编程方式的落地须要使用 “类” 和 “对象” 来实现,因此,面向对象编程其实就是对 “类” 和 “对象” 的使用。code
类就是一个模板,模板里能够包含多个函数,函数里实现一些功能对象
对象则是根据模板建立的实例,经过实例对象能够执行类中的函数blog
class是关键字,表示类继承
建立对象,类名称后加括号便可游戏
类中的函数第一个参数必须是self(详细见:类的三大特性之封装)
类中定义的函数叫作 “方法”
# 建立类
class Foo:
def Bar(self):
print 'Bar'
def Hello(self, name):
print 'i am %s' %name
# 根据类Foo建立对象obj
obj = Foo()
obj.Bar() #执行Bar方法
obj.Hello('wupeiqi') #执行Hello方法
三. 面向对象三大特征
封装
第一步: 将内容封装到某处
self 是一个形式参数,
当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1
当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2
因此,内容其实被封装到了对象 obj1 和 obj2 中,每一个对象中都有 name 和 age 属性,在内存里相似于下图来保存。
第二步: 从某处调用被封装的内容
调用被封装的内容时, 有两种状况:
经过对象直接调用
经过self间接调用
一、经过对象直接调用被封装的内容
上图展现了对象 obj1 和 obj2 在内存中保存的方式,根据保存格式能够如此调用被封装的内容:对象.属性名
class Foo:
def __init__(self, name, age):
self.name = name
self.age = age
obj1 = Foo('wupeiqi', 18)
print obj1.name # 直接调用obj1对象的name属性
print obj1.age # 直接调用obj1对象的age属性
obj2 = Foo('alex', 73)
print obj2.name # 直接调用obj2对象的name属性
print obj2.age # 直接调用obj2对象的age属性
二、经过self间接调用被封装的内容
执行类中的方法时,须要经过self间接调用被封装的内容
class Foo:
def __init__(self, name, age):
self.name = name
self.age = age
def detail(self):
print self.name
pr