Python面向对象编程——总结面向对象的优点

一、从代码级别看面向对象

1、在没有学习类这个概念时,数据与功能是分离的

def exc1(host,port,db,charset):

conn=connect(host,port,db,charset)

conn.execute(sql)

return xxx

def exc2(host,port,db,charset,proc_name)

conn=connect(host,port,db,charset)

conn.call_proc(sql)

return xxx

#每次调用都需要重复传入一堆参数

exc1('127.0.0.1',3306,'db1','utf8','select * from tb1;')

exc2('127.0.0.1',3306,'db1','utf8','存储过程的名字')

2、我们能想到的解决方法是,把这些变量都定义成全局变量

HOST="127.0.0.1’

PORT=3306

DB="db1’

CHARSET="utf8’

def exc1(host,port,db,charset):

conn=connect(host,port,db,charset)

conn.execute(sql)

return xxx

def exc2(host,port,db,charset,proc_name)

conn=connect(host,port,db,charset)

conn.call_proc(sql)

return xxx

exc1(HOST,PORT,DB,CHARSET,'select * from tb1;')

exc2(HOST,PORT,DB,CHARSET,'存储过程的名字')

3、但是2的解决方法也是有问题的,按照2的思路,我们将会定义一大堆全局变量,这些全局变量并没有做任何区分,即能够被所有功能使用,然而事实上只有HOST,PORT,DB,CHARSET是给exc1和exc2这两个功能用的。言外之意:我们必须找出一种能够将数据与操作数据的方法组合到一起的解决方法,这就是我们说的类了。

class MySQLHandler:

def __init__(self,host,port,db,charset='utf8'):

self.host=host

self.port=port

self.db=db

self.charset=charset

self.conn=connect(self.host,self.port,self.db,self.charset)

def exc1(self,sql):

return self.conn.execute(sql)

def exc2(self,sql):

return self.conn.call_proc(sql)

obj=MySQLHandler('127.0.0.1',3306,'db1')

obj.exc1('select * from tb1;')

obj.exc2('存储过程的名字')

总结使用类可以:

将数据与专门操作该数据的功能整合到一起。

二、可扩展性高

定义类并产生三个对象

class Chinese:

def __init__(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

p1=Chinese('egon',18,'male')

p2=Chinese('alex',38,'female')

p3=Chinese('wpq',48,'female')

如果我们新增一个类属性,将会立刻反映给所有对象,而对象却无需修改

class Chinese:

country='China'

def __init__(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

def tell_info(self):

info='''

国籍:%s

姓名:%s

年龄:%s

性别:%s

''' %(self.country,self.name,self.age,self.sex)

print(info)

p1=Chinese('egon',18,'male')

p2=Chinese('alex',38,'female')

p3=Chinese('wpq',48,'female')

print(p1.country)

p1.tell_info()

python面向对象编程的优点-Python面向对象编程——总结面向对象的优点相关推荐

  1. python面向对象编程的优点-Python面向对象编程

    面向过程编程,重点在于过程(可以理解成how),即以过程为核心,计算机/写代码的人会把精力聚焦在具体的实现过程上,这个过程第一步干什么,第二步干什么,直到最后完成了你的目标. 面向对象编程,重点在于对 ...

  2. python完全支持面向对象编程思想_面向对象的编程思想和Python的继承和多态,特殊方法,引用计数...

    面向对象的编程思想和Python的类,访问和属性,继承 在上一文中我们了解到了,私有的属性的访问方式:实例名._类名__私有属性名. 一.私有的属性如何对外提供公有的取值和赋值方法呢?提供公有的方法作 ...

  3. python完全支持面向对象编程思想_面向对象的编程思想和Python的类,访问和属性,继承...

    本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和Python类的继承. 复制代码 一.访问权限: Python中在类的内部定义属性和方法,在类的外部是可以直接调用或进行访问 ...

  4. c#和python同一主机直接udp_Python 第十一章:面向对象编程(上)!(系列发布)...

    Advanced Management Technology 前沿管理技术       共享知识智慧 Python语言经典课程 Python面向对象编程 本篇内容: 1.反射 2.面向对象编程 3.面 ...

  5. python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承

    面向对象的编程思想和Python的类,类的方法和属性,实例方法这一文从面向对象的角度,介绍类的定义,类的属性和自定义方法. 本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和 ...

  6. python装饰器和异常处理_装饰器异常处理-面向对象编程-Python教程自动化开发_Python视频教程...

    课程目标:使学员掌握python基础教程知识,能够开发常用的PYTHON脚本 课程特色:实战,细致,生动,深入浅出 适用人群:适合PYTHON初学者 课程详情:该Python视频教程从0基础开始讲解P ...

  7. Python教学课程分享9-面向对象编程

    面向对象程序设计的思想主要是针对大型软件设计而提出的,它的一个关键性观念是将数据以及对数据的操作封装在一起,组成一个相互依存.不可分割的整体,即不同对象之间通过消息机制来通信或者同步.对于相同类型对象 ...

  8. 没学过编程可以自学python吗-完全没学过编程的人学习 Python前应该掌握些什么?...

    在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...

  9. python利器怎么编程-C++和Python混合编程的利器

    Python是一种简单易学.功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程.Python简洁的语法.对动态输入的支持和解释性语言的本质,使得它在很多领域的大多数平台上都是 ...

  10. 适合自学python的图书-有哪些适合零编程基础的人学习Python的书?

    很多人在问,学习Python读什么书,这其实是一个非常通用的问题,学习分为三种方式:看书.上课.培训,而读书学习是最实惠也是最高效的一种,下面我们推荐6本高分书籍给大家,希望大家学习愉快: 1.Pyt ...

最新文章

  1. Apache 架构师总结的 30 条架构原则
  2. 服务器设备监控系统,服务器设备监控系统
  3. Ansible — Playbooks
  4. CDH 6.x 安装 Phoenix 服务
  5. 部分植物基因组数据库汇总
  6. VSCode + git代码托管:入门到实战
  7. 关于“抵制”易语言的通告
  8. 实战PyQt5: 137-QChart图表之散点图
  9. 汽车控制器(ECU)中DTC的状态位
  10. qq2009 好像和金山词霸屏幕取词有冲突
  11. 李智慧 - 架构师训练营 第三周
  12. 常州大学 计算机与人工智能学院,常熟理工学院新闻网
  13. PaddleOCR - (1) PPOCRLabel数据标注
  14. 复制mathtype到Word时
  15. c语言求最大公约数多一个负号,C语言 求最大公约数
  16. EAG通过新实验室拓展医疗器械检测服务
  17. MATLAB 绘制堆叠柱状图
  18. DBus daemon 启动(三)
  19. URP——后期处理特效——运动模糊Motion Blur
  20. 打通微信小程序自动化部署最后一步-微信第三方平台

热门文章

  1. hdu 5167 bfs
  2. 《编写高质量代码:改善Java程序的151个建议》笔记
  3. shell 脚本实战笔记(9)--linux自动批量添加用户
  4. JS中获取焦点和选中的元素
  5. a标签代替input[button]
  6. jQuery版本不同及多次引用问题
  7. Go-ethereum源码解析-Part I
  8. 数据结构 - 静态单链表的实行(C语言)
  9. android学习笔记55——ContentProvider_2
  10. 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs