python中什么是面向对象


Posted in Python onJune 11, 2020

用面向对象的思维解决问题的重点

当遇到一个需求的时候不用自己去实现,如果自己一步步实现那就是面向过程;应该找一个专门做这个事的人来做。

面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我们可以把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。

面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。

类和对象的概念

类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用;

特征被称为属性;

行为被称为方法。

对象

对象是由类创建出来的一个具体存在,可以直接使用;

由哪一个类创建出来的对象,该对象就具有在那一个类中定义的属性和方法;

类和对象的关系

类就是创建对象的模板,应该先有类,在有对象;

一个类可以创建多个对象,不同对象之间属性可能各不相同;

类中定义了什么方法,对象中就有什么属性和方法,不可能少,但可能多,因为对象可以自己在类外增加属性

定义简单的类

面向对象是更大的封装,在一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了。

定义只包含方法的类

在python中药定义一个只包含方法的类,语法格式如下:

class 类名:
  def 方法1(self, 列表参数):
    pass
  def 方法2(self, 列表参数):
    pass

方法的定义格式和之前学习的函数几乎一样;

区别在于第一个参数必须是self;

注意,类名的命名规则要符合大驼峰命名法;

创建对象

当一个类定义完成后,要使用这个类来创建对象,语法格式如下:

对象变量 = 类名()

第一个面向对象程序

class Cat:
  """定义一个猫类"""
  def eat(self):
    print("小猫爱吃鱼")

  def drink(self):
    print("小猫要喝水")
    
tom = Cat()
tom.eat()
tom.drink()

知识点扩展:

面向对象设计与面向对象编程的关系

面向对象设计(OOD)不会特别要求面向对象编程语言。事实上,OOD 可以由纯结构化语言来实现,比如 C,但如果想要构造具备对象性质和特点的数据类型,就需要在程序上作更多的努力。当一门语言内建 OO 特性,OO 编程开发就会更加方便高效。另一方面,一门面向对象的语言不一定会强制你写 OO 方面的程序。例如 C++可以被认为“更好的C”;而 Java,则要求万物皆类,此外还规定,一个源文件对应一个类定义。然而,在 Python 中,类和 OOP 都不是日常编程所必需的。尽管它从一开始设计就是面向对象的,并且结构上支持 OOP,但Python 没有限定或要求你在你的应用中写 OO 的代码。OOP 是一门强大的工具,不管你是准备进入,学习,过渡,或是转向 OOP,都可以任意支配。考虑用 OOD 来工作的一个最重要的原因,在于它直接提供建模和解决现实世界问题和情形的途径。

到此这篇关于python中什么是面向对象的文章就介绍到这了,更多相关python中什么是面向对象内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
初学Python函数的笔记整理
Apr 07 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
一些Python中的二维数组的操作方法
May 02 Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
Python定时器实例代码
Nov 01 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
python web基础之加载静态文件实例
Mar 20 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python同步windows和linux文件
Aug 29 Python
python实现大学人员管理系统
Oct 25 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
python中if及if-else如何使用
Jun 02 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 #Python
python新手学习可变和不可变对象
Jun 11 #Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 #Python
什么是python的id函数
Jun 11 #Python
Keras:Unet网络实现多类语义分割方式
Jun 11 #Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 #Python
Keras 快速解决OOM超内存的问题
Jun 11 #Python
You might like
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
js程序中美元符号$是什么
2008/06/05 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
学习python处理python编码问题
2011/03/13 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python3 读写文件换行符的方法
2018/04/09 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
html5 canvas 使用示例
2010/10/22 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
《凡卡》教学反思
2014/04/09 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python