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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
有关Python的22个编程技巧
Aug 29 Python
python3+requests接口自动化session操作方法
Oct 13 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
通过cmd进入python的步骤
Jun 16 Python
python字符串的index和find的区别详解
Jun 20 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 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中的Class的几点个人看法
2006/10/09 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
浅析php工厂模式
2014/11/25 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
django-filter和普通查询的例子
2019/08/12 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
《会走路的树》教后反思
2014/04/19 职场文书
清明节演讲稿
2014/05/27 职场文书
企业党建工作总结2015
2015/05/26 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
Python+pyaudio实现音频控制示例详解
2022/07/23 Python