程序设计的三种基本结构: 面向对象,面向过程,函数式编程
1,什么是面向对象编程 
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
2,什么是类什么是对象,又有什么关系可以说类是一个函数的集合,看看下面的代码
class 类:#类名称def 函数1()passdef 函数2()pass

obj=类() #创建一个对象,实例化的过程
obj.函数1()#方法
3,什么时候适用面向对象呢?
当我们想写一个机器上传文件并执行命令的脚本,我们可以用面向过程的方法,利用函数写成这个样子:
def upload():#连接服务器#上传文件#关闭连接pass
def cmd():#连接服务器#执行命令#关闭连接pass
def upload_cmd():#连接服务器#上传文件#执行命令#关闭连接pass

也可以这样

def connect():#连接服务器pass
def close():#断开连接pass
def upload():connect()#上传文件
    close()pass
def cmd():connect()#执行命令
    close()pass
def upload_cmd():connect()upload()cmd()close()pass

感觉好像有点繁琐,总归是处理了,那么,如果用面向对象会如何呢?

class SSH(object):def __init__(self,host,port,pwd,username):self.host = host...def connection(self):self.connection = 和服务器创建对象()        def  close(self):#关闭
        self.connection.关闭def upload(self):self.connection() #使用连接上传文件def cmd(self):self.connection()#使用执行命令

obj = SSH('',host,port....)
obj.connection()
obj.upload()
obj.close()

我们把公共的功能,提取出来,还可以创建属于对象的属性,其他方法可以使用,这样不是更好么?

还有一种使用场景,就是类似于模板化,实例代码如下:

class Role(object):def __init__(self, name, role, weapon, life_value=100, money=15000):self.name = nameself.role = roleself.weapon = weaponself.life_value = life_valueself.money = moneydef shot(self):print("%s shooting..." %self.name)self.__heart = "Die"print(self.__heart)def got_shot(self,):print("%s say : ah...,I got shot..." %self.name)def buy_gun(self, gun_name):print("%s just bought %s" %(self.name,gun_name))self.weapon = gun_name #通过类可以改对象的属性

r1 = Role('Alex', 'police', 'AK47') #生成一个角色
r2 = Role('Jack', 'terrorist', 'B22')  #生成一个角色

结论:

 面向对象不会写,也能实现和满足功能,就是比较麻烦,而面向对象简单的就能实现,但是无论我们用什么形式编程,我们都要明确记住一下原则:
 
1.写重复代码是非常不好的低级行为
2.你写的代码需要经常变更所以需要他可读性好,易扩展
3. 面向过程编程与OOP的主要区别就是 OOP 使程序更加容易扩展和易更改

下一篇文章会将面向对象的语法和特性总结:

Python面向对象学习2(面向对象的语法和特性)

转载于:https://www.cnblogs.com/sean-yao/p/7712604.html

Python面向对象学习 1 (什么是面向对象,面向对象的应用场景,待更新)相关推荐

  1. 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍

    刚开始学习Python 并发查询或者并发读写时,看到大神们说,多线程是python的鸡肋,要学就学多进程.好吧,我连多线程怎么写都不知道呢. 因此,就写了以下的示例代码.代码目的是将test.txt文 ...

  2. 【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态

    这一周Python语言学习,记录如下. 01 面向对象编OOP 1.1 为什么学习和应用OOP? 1 OOP适合更加复杂的需求分析和项目开发. 2 OOP具有更强大的封装能力. 3 OOP相比于面向过 ...

  3. python面向对象学习_Python 初识面向对象#学习猿地

    > 面向对象编程--Object Oriented Programming,简称`OOP`,是一种**以对象为中心**的程序设计思想. > > 面向过程编程--Procedure O ...

  4. Python基础学习,面向对象的基本概念

    Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程. 面向对象的最主要目的是提高程序的重复使用性.我们这么 ...

  5. python基础学习笔记12:Python面向对象编程

    面向对象编程思想 1.什么是面向过程 传统的面向过程的编程思想总结起来就八个字--自顶向下,逐步细化! 将要实现的功能描述为一个从开始到结束按部就班的连续的"步骤" 依次逐步完成这 ...

  6. 十一Python之路,Day6 - 面向对象学习

    本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你 ...

  7. Java基础学习总结(6)——面向对象

    2019独角兽企业重金招聘Python工程师标准>>> 一.JAVA类的定义 JAVA里面有class关键字定义一个类,后面加上自定义的类名即可.如这里定义的person类,使用cl ...

  8. Python基础教程(九):面向对象、正则表达式

    Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...

  9. C++学习课件(二)————面向对象

    C++学习课件(二)----面向对象 一.类和对象 1. 类 2. 对象 1. 在栈中创建对象 2. 在堆中创建对象 3. 访问修饰符 4. 实现类的成员函数 [ 重点 ] 1. 类中实现 或 外部实 ...

最新文章

  1. BeanShell使用json.jar包处理Json数据
  2. Redis+Nginx+设计模式+Spring全家桶+Dubbo阿里P8技术精选文档
  3. html调用chr,PHP: 使用chr打印汉字
  4. java魔兽猎人_Java基于Swing实现的打猎射击游戏代码
  5. 最佳子集aic选择_AutoML的起源:最佳子集选择
  6. Android常用代码混淆模板
  7. ibm邮件怎么撤回_怎么申请邮箱?163邮箱如何注册使用?
  8. 房子过户给子女哪种方式最合适?买卖?赠与?继承?不看就亏大了!
  9. 2017《JAVA》预备作业 计科1501班 王奕开
  10. 夏昕.深入浅出Hibernate中的第一个例子体会.
  11. Python3: 超简单个性动态二维码制作
  12. MinGW32编译ffmpeg+libsrt
  13. HTML如何制作音乐网站(如何搭建个人音乐网页)
  14. R3.6.3下载 Rstudio下载及安装,网盘链接永久有效
  15. Mac:sh: /Users/lipan/Downloads/Django/node_modules/.bin/vue-cli-service: Permission denied
  16. 我的专业计算机作文说明文,我的电脑作文说明文
  17. IOS控件-tableview
  18. Cuckoo Sandbox
  19. php 开头结尾,php 字符串 以什么开头 开头开始 以什么结尾 结束 包含 startWith endWith 字符串包含 有大用...
  20. Saleor:开源、免费的无头电子商务平台——系列教程,快速打造属于你的电商网站

热门文章

  1. python去除图片上的文字_Python图像处理之识别图像中的文字(实例讲解)
  2. php网页多个倒计时,怎么实现一个页面有多个倒计时同时进行
  3. idea启动java Maven项目,出现“ java: 程序包xxxx不存在“
  4. java为什么还需要分布式锁?
  5. 使用福禄克CFP单模光纤测试仪像专家一样设置参数!
  6. oracle 次月,Oracle日期查询:季度、月份、星期等时间信息
  7. 电脑知识:如何保养自己的电脑,看完你就懂了!
  8. 职坐标 MySQL视频_测试工具之MySQLSlap使用实例
  9. python200行代码_如何用200行Python代码“换脸”
  10. 考研计算机专业课统考吗,09考研计算机专业课统考增至4部分内容