本文实例讲述了Python3.5面向对象编程。分享给大家供大家参考,具体如下:
1、面向过程与面向对象的比较
(1)面向过程编程(procedural programming)
面向过程编程又被称为:top-down languages,程序从上到下 一步步执行,从头到尾的解决问题。
基本设计思路为:程序一开始是解决一个大问题,然后把大问题分解成多个小问题或子过程,这些小问题执行的时候再继续分解,
直到小问题足够简单到可以在一个小范围内解决。
缺点:若程序要进行修改,则修改的部分依赖的各个部分也要修改,这样会发生一连串的影响,随着程序越来越大,编程方式的维护难度也会越来越高。
所以,如果写一下简单的脚本,去做一些一次性的任务,用面向过程的方式是极好的,如果要处理的任务是复杂的,且需要不断迭代和维护的,还是用面向对象是最方便的。
(2)面向对象编程(oop)
面向对象编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。
优点:可以使程序的维护和扩展变得简单,并且可以大大提高程序的开发效率;另外,基于对象的程序编程,可以让别人更加理解你的代码逻辑,是团队开发变得更加从容。
核心的特征:世界万物皆对象,世界万物皆可分类。
a、类(class)
类:是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象都具备的属性、共同的方法。
b、对象(object)
对象:类实例化后的实例,一个类必须经过实例化方能在程序中调用。
一个类可以实例化多个对象,每个对象可以有不同的属性。人类是指使用的人,每个人是指具体的对象。
c、封装(encapsulation)
在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。
d、继承(Inheritance)
一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。
e、多态(Polymorphism)
多态:是面向对象的重要特性,简单点说:“一个接口,多种实现”,指一个基类中派生出了不同的子类,
且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。
编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现。
把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话。
多态允许将子类的对象当作父类的对象使用,某父类型的引用指向其子类型的对象,调用的方法是该子类型的方法。
这里引用和调用方法的代码编译前就已经决定了,而引用所指向的对象可以在运行期间动态绑定。
2、面向对象编程
(1)无论什么形式的编程,都要明确一下原则:写重复的代码是非常不好的地级行为;之前写的代码需要不断的更新。
所以,开发的程序要遵循易读、易改的原则,即:可读性好、易扩展。
(2)示例代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
#面向对象--CS游戏模拟
class Role(object):
def __init__(self,name,role,weapon,life_value=100,money=15000):
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money
def shot(self):
print("shotting...")
def got_shot(self):
print("ah...%s got shot..." %self.name)
def buy_gun(self,gun_name):
print("%s just bought %s" %(self.name,gun_name))
r1 = Role("Jack","police","AK-47") #实例化(初始化一个类,创建了一个对象)
r1.buy_gun("B51")
r2