Python面向对象-概念、类、实例
OOP——Object Oriented Programming,面向对象编程,是一种程序设计思想。该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
区别于面向过程的程序设计即把计算机程序视为一系列的命令集合(即一组函数的顺序集合),面向对象的程序设计是把计算机程序视为一组对象的集合,每个对象都可以接受其他对象发过来的消息,并可以处理这些消息,计算机程序的执行就是一系列消息在各个对象之间的传递。
”万物皆对象“!
面向对象的设计思想是人们观察自然中现象的一种认知模式。想想,自然界中,类class和实例Instance的概念是不是很自然而然的呢?比如,定义类Class——动物,而实例Instance则是一个个具体的动物,比如说狗、猫就是两个具体的动物。
面向对象的设计思想就是抽象出class,然后根据class创建Instance。因为一个class既包含数据,又包含操作数据的方法,所以可以说面向对象的抽象程度比面向函数要高。
Python中所有的数据类型都可以视为对象,也可以自定义对象。自定义对象就是面向对象中的类(Class)的概念。
举例:
通过class关键字来定义一个Student的类:
class Student(object):
pass
定义好了Student类(模板)后,就可以根据Student类创建出Student的实例。创建实例是通过类名+()实现的:
>>> WC = Student()
>>> Student
<class '__main__.Student'>
>>> WC
<__main__.Student object at 0x03783270>
从上述结果可以看出,WC指向的是Student的实例,内存地址为0x03783270。而Student本身则是一个类,并没有分配内存地址。
既然类实际是一个模板的作用,那么我们在设计模板的时候,把一些我们认为的一些通用的属性或者行为强制性的赋予给模板,以后新建实例的实例,就会直接持有这些通用的属性或者行为了。一般的,通过__init__方法,实现上述过程。
比如,我们认为Student一般都会有name、score属性:
class Student(object):
def __init__(self,name,score
self.name = name
self.score = score
注意,__init__方法的第一个参数永远都是self,表示创建的实例本身。在__init__方法内部,就可以把属性绑定到self上。有了__init__函数后,创建实例的时候,就必须传入于__init__方法匹配的参数,其中self不需要传:
>>> WC = Student('Wuchong',99)
>>> WC.name
'Wuchong'
>>> WC.score
99
WC就是类Student的一个实例。
和一般函数相比,类中定义的函数有点不同:就是第一个参数永远是self,并且在调用的时候,不需要传递该参数。
Python面向对象-概念、类、实例的更多相关文章
- Python 面向对象之一 类与属性
Python 面向对象之 类与属性 今天接触了一下面向对象,发现面向对象和之前理解的简直就是天壤之别,在学Linux的时候,一切皆文件,现在学面向对象了,so,一切皆对象. 之前不是一直在学的用面向函 ...
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
- python面向对象(类与对象)
面向对象思想 关注公众号"轻松学编程"了解更多. 1.面向对象的设计思想 面向对象是基于万物皆对象这个哲学观点. 2.面向对象和面向过程的区别 面向过程 在生活中: 它是一种看待问 ...
- python 面向对象和类成员和异常处理
python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...
- python面向对象(二)——类成员
Python面向对象 类成员 1.字段 普通字段 属于对象 静态字段 属于类 2.方法 普通方法 触发者是对象 括号里至少一个参数 se ...
- Python面向对象编程-类的封装,继承、多态
面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来, ...
- python 面向对象(类)--学习笔记
面向对象是一种编程方式, 主要集中在类和对象的两个概念 python 中的类符合封装, 继承, 多态的特征 类 是一个模板, 是n多函数的集成 对象 是类的实例化 类的成员分为三大类:字段.方法.属性 ...
- python 面向对象与类的基本知识
一 什么是面向对象,面向对象与类的关系. 面向对象的程序设计是用来解决扩展性. 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象 ...
- Python面向对象:类、实例与访问限制
首先记录下面向对象的名词: 对象:python万物皆对象,程序设计的东西在对象上体现. 类:具有相同属性和行为的对象的集合. 消息:各个对象之间通过消息相互联系. 方法:对象功能实现的过程. 封装:把 ...
随机推荐
- js 日常正则
手机号 /^1((3[\d])|(4[5,6,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[1-3,5-8])|(9[1,8,9]))\d{8}$/ 大写字母 /^[A- ...
- Python和BeautifulSoup进行网页爬取
在大数据.人工智能时代,我们通常需要从网站中收集我们所需的数据,网络信息的爬取技术已经成为多个行业所需的技能之一.而Python则是目前数据科学项目中最常用的编程语言之一.使用Python与Beaut ...
- 30L,17L,13L容器分油,python递归,深度优先算法
伪代码: 全部代码: a=[] b=[] def f(x,y,z): b.append([x,y,z]) if x==15 and y==15: print(x,y,z) i=0; for x in ...
- linux bash shell编程之参数变量和流程控制。
参数变量:用来向脚本中传递参数 我们在执行脚本的时候可以在其后面加入一些参数,通常来说这些参数与脚本中变量为对应关系. start.sh argu1 argu2 引用方式: $1,,2,……${10} ...
- theano function参数
train_rbm = theano.function( [index], # inputs cost, # outputs updates=updates, givens={ x: train_se ...
- 分布式远程调用SpringCloud-Feign的两种具体操作方式(精华)
一 前言 几大RPC框架介绍 1.支持多语言的RPC框架,google的gRPC,Apache(facebook)的Thrift 2.只支持特定语言的RPC框架,例如新浪的Motan 3.支持服务治理 ...
- 附012.Kubeadm部署高可用Kubernetes
一 kubeadm介绍 1.1 概述 参考<附003.Kubeadm部署Kubernetes>. 1.2 kubeadm功能 参考<附003.Kubeadm部署Kubernetes& ...
- js如何衔接css3的多个@keyframes动画?
css3特效动画,我们在编写页面中经常遇到,而且是在同一个div模块上有多个衔接的不同动画,css中,我们经常使用animation-delay (规定在动画开始之前的延迟)进行处理. 那么,下面分享 ...
- OC中ARC forbids explicit message send of release错误
在ios编程中,如果成员变量为对象,我们需要对成员变量内存管理,否则,会造成内存泄露.即我们要对成员变量进行手动的内存释放. 很显然,是ARC的问题. 错误原因:在创建工程的时候点选了“Use Aut ...
- 基于netty4.x开发时间服务器
在写代码之前 先了解下Reactor模型: Reactor单线程模型就是指所有的IO操作都在同一个NIO线程上面完成的,也就是IO处理线程是单线程的.NIO线程的职责是: (1)作为NIO服务端,接收 ...