Python - 面向对象编程 - 什么是对象和类
面向对象编程
- Object Oriented Programming,简称 OOP,是一种程序设计思想
- OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法
Python里面有一句话:万物皆是对象
在编程领域中,通常把现实世界中的实体称为对象,例如:
- 美国总统特朗普
- 中国明星成龙
- 上海中心大厦
- 北京中信大厦
对象指的是一个具体的实体,不用于指代一个抽象的群体
- 小菠萝是一个具体的人,所以可以说小菠萝是一个对象
- 它是一个中国人,但中国人是一个抽象的概念,指的是一群人
- 所以不能说中国人是一个对象
类似的,上海中心大厦、北京中信大厦这些具体的大厦可以被称为对象,但是不能说大厦是一个对象
对象的属性和行为
现实世界中的实体有属性和行为,如下列举了特朗普和小菠萝的属性和行为
对象 | 属性 | 行为 |
---|---|---|
特朗普 | 姓名、年龄 | 自我介绍 |
小菠萝 | 姓名、年龄 | 自我介绍 |
行为又被称为方法,它是对属性的操作
包括读取操作和修改操作,例如,在特朗普的自我介绍行为中,会读取他的属性:姓名和年龄
Python 对象
对象栗子
# 字符串
'Hello' # 列表
['www', 'poloyy', 'com'] # 元组
('www', 'poloyy', 'com') # 字典
{'name': 'tom', 'age': 123}
对象的属性
>>> string = 'Hello'
>>> print(string.__doc__)
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. >>> list = ['a', 'b', 'c']
>>> print(list.__doc__)
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
__doc__ 是属性,字符串、列表都有这个属性
对象的行为
>>> string = 'Hello'
>>> string.upper()
'HELLO'
>>> list = ['a', 'b', 'c']
>>> list.append('d')
>>> list
['a', 'b', 'c', 'd']
- upper() 是字符串的方法,也叫行为
- append() 是列表的方法
什么是类
类的定义
- 在现实世界中,具体的实体被称为对象
- 观察这些对象的属性和行为,发现可还是用相同的特征去描述一类对象
对象 | 属性和行为 |
---|---|
美国总统特朗普 | 姓名、年龄、工作 |
中国明星成龙 | 姓名、年龄、工作 |
上海中心大厦 | 高度、业主、维护 |
北京中信大厦 | 高度、业主、维护 |
现实生活中
- 可以使用【姓名、年龄、工作】 等特征去描述特朗普和成龙这一类对象,因为都是人
- 使用【高度、业主、维护】等特征去描述上海中心大厦、北京中信大厦这一类对象,因为都是大厦
编程世界中
- 类是对一组具有相同属性和行为的对象的抽象
- 【人】是一个抽象的概念,它是一个类或类别,描述了具有【姓名、年龄、工作】等特征的一组对象
- 【大厦】是一个抽象的概念,它是一个类或类别,描述了具有【高度、业主、维护】等特征的一组对象
类和对象的区别
- 对象是一个具体的实体,比如【小菠萝】是一个对象,是一个具体的人
- 类是一组具有相同特征的对象,【小菠萝】【成龙】【特朗普】的都是一个具体的人,而人是一个类
类和对象的关系
- 对象属于某个类,对象也可以不属于某个类
- 【小菠萝】是一个人,属于人类,但不是一个大厦,不属于大厦类
Python - 面向对象编程 - 什么是对象和类的更多相关文章
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
什么是对象和类 https://www.cnblogs.com/poloyy/p/15178423.html 什么是 Python 类.类对象.实例对象 https://www.cnblogs.com ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- python 面向对象编程(一)
一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class c ...
- Python面向对象编程指南
Python面向对象编程指南(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1SbD4gum4yGcUruH9icTPCQ 提取码:fzk5 复制这段内容后打开百度网 ...
- python面向对象编程进阶
python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...
- Python面向对象编程(下)
本文主要通过几个实例介绍Python面向对象编程中的封装.继承.多态三大特性. 封装性 我们还是继续来看下上文中的例子,使用Student类创建一个对象,并修改对象的属性.代码如下: #-*- cod ...
- Python 面向对象编程——访问限制
<无访问限制的对象> 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑.但是,从前面Student类的定义来看(见:Py ...
- Python 面向对象编程 继承 和多态
Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: c ...
随机推荐
- 记录21.07.20 —— js语言回顾
js语言回顾 1.语法 a并没有声明,也可以输出,不会报错. 添加一条语句 则需要声明,称之为严谨语法 2.数组 2.1数组遍历三种方法 for-in与for-of forEach forEach调用 ...
- POJ 1190 生日蛋糕题解
题目地址:http://poj.org/problem?id=1190 一道很有趣的搜索题--主要是剪枝-- 我弄了5个剪枝: 1.当前剩余层数>=上层半径,剪掉 2.当前剩余层数>=上层 ...
- python自动化之(自动生成测试报告)
前言: 用python执行测试脚本, 测试报告是记录我们测试过程的问题, 方便我们对整个测试过程的把控. 这里引用的是别人写好的模板, 我们拿过来用就OK, 能力强者可自行编写模板 测试报告图模板: ...
- 最全总结 | 聊聊 Python 数据处理全家桶(PgSQL篇)
1. 前言 大家好,我是安果! Python 数据处理全家桶,截止到现在,一共写过 6 篇文章,有兴趣的小伙伴可以去了解一下! 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇) 最全 ...
- Typora加七牛云实现实时图片自动上传
Typora加七牛云实现实时图片自动上传 前言: Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别.重点是免费! 其风格简约 ...
- centos7上用docker搭建简单的前后端分离项目
1. 安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 使 ...
- 【Vulhub】Rsync未授权访问漏洞复现
Rsync未授权访问 Rsync简介 rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息 ...
- 生成二维码项目pom.xml中QRCode依赖报错
pom.xml报错如下: 解决方法: 1.将QRCode.jar包下载到E盘下 网盘下载地址: 链接:https://pan.baidu.com/s/1sY1NK5ekCkNH0uqraZMnKw 提 ...
- 入门Kubernetes-StatefulSets
前言: 前面文中对通过DaemonSet.存储资源对象,实现了在指定节点中运行一个守护进程. 在真实的业务场景中,部署的服务都是有状态的.且有数据需要持久化的:那么如何实现呢? 那么接下来学习一种更加 ...
- (一)Linux之目录结构
Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...