一、开发思想
1.面向过程编程:根据业务逻辑,从上到下垒写代码
2.函数式编程:将某功能代码封装到函数中,日后无需编写。仅调用即可。
3.面向对象编程:对函数进行分类和封装,让开发"更好更快更强"
二、面向对象编程
1.Python 从设计之初就是一门面向对象的语言。
2.面向对象对象编程,最重要的就是类和实例的概念。
类:用来描述相同的属性和方法的对象集合。
3.对象
对象是面向对象方法中的核心概念。
对象的方法一方面把对象的内部变量包裹、保护起来,使得只有对象自己的方法才能操作这里内部变量;
另一方便,对象的方法还是对象与外部环境的接口。通过这些接口驱动对象执行指定行为,提供相应的服务。
4.类与对象
类:类是一个模板,它描述了一类对象的行为和状态。
对象:对象是类的一个实例,有状态和行为。
5.创建类
#创建类
class Foo:
#创建类中的函数:
def Bar(self):
#do something
#根据类Foo创建对象obj
obj = Foo()
使用class语句来创建一个新类,class之后为类的名称。类名后有一括号,括号中
为基类(可以有多个基类),然后以冒号结尾。
class ClassName(BaseClass1,BaseClass2,...):
'optional class documentation string' #类的帮助信息
class_suite #类体
(1) 类的帮助信息可以通过ClassName._doc_查看
(2) Class_suite由类成员、方法、数据属性组成。
5.1 创建类
#coding=utf-8
class Employee(object):
empCount=0 #所有员工基类
def __init__(self,name,salary):
#类的构造函数
self.name = name
self.salary = salary
Employee.empCount+=1
def displayCount(self):
#类方法
print("total employee",Employee.empCount)
def displayEmployee(self):
print("name:",self.name,",salary:",self.salary)
5.2 empCount变量是一个类变量(也叫静态变量)。它的值将在这个类的所有实例之间
共享。你可以在内部类或外部类使用Employee.empCount访问。
5.3 _init_()类中第一个方法_init_()是一种特殊方法,被称为类的构造函数或初始化方法。
只要创建类的实例,就会调用这个方法。如果没显示定义这个方法,默认会给一个空的
构造方法。
5.4 类方法中参数的self,代表是实例本身,相当于java中的this指针。并且类中所有的方法
都必须由self,并且写在第一个参数位置。
5.5 所有类都是继承至基类object。
6. 访问类的实例方法或属性
类通过函数(在class语句内由def语句编写的)为实例提供行为。因为这种嵌套的def
会在类中对变量名进行赋值,实际效果就是把属性添加到类对象之中,从而可以由所有实
例和子类继承。
方法:def语句出现在类内部时,通常就叫方法,而且会自动接收第一个特殊参数(通常
self),这个参数提供了被处理的实例的参照值,并且一定是明确写出来的。
访问对象的属性及方法,需要使用(.)访问。如果访问类变量,既可以直接使用类名称访问,
也可以用类的实例名称访问。
7.创建实例对象
要创建一个类的实例,可以使用类的名称,并通过__init__()方法来接受参数。
创建一个类的具体对象。每次从类产生实例时,Python都会自动调用名__init__的方法,
也就是类的创造方法,进行数据初始化。新实例会如往常那样传入__init__的self参数。
该方法也会在类中被继承。
8.类的对象在内存中是如何保存?
类及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份。
三、封装
封装,将内容封装到某个地方,以后再去调用被封装在某处的内容。
在使用面向对象的封装特性时,需要:
将内容封装到某处;
从某处调用被封装的内容;
四、调用
调用被封装的内容时,有两种情况:
通过对象直接调用 对象.属性名
通过self间接调用 对象.方法
网友评论