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万物皆对象,程序设计的东西在对象上体现. 类:具有相同属性和行为的对象的集合. 消息:各个对象之间通过消息相互联系. 方法:对象功能实现的过程. 封装:把 ...
随机推荐
- 2019-9-18:渗透测试,基础学习,DNS HTML,笔记
DNS服务器,域名解析服务器,端口默认53,UDP协议传输,服务器作业,将域名转成ip,将ip转成域名 sql server默认端口:1433,MSSQL是sql server简写 netstat - ...
- Scala学习笔记三
scala变量理解: package com.cxy.scala object Hello { def main(args: Array[String]): Unit = { println(&quo ...
- es3设置属性不能修改
/*es3*/ { var Person =function () { var data ={ name:'zs', sex:'男', age:18 } this.get=function (key) ...
- vi指令详解
★ vi的模式(命令模式.插入模式.ex模式) 1)命令模式: 在我们刚刚通过vi新建或打开一个已经存在的文件时,首先默认被读取的模式就是“命令模式”,命令模式的特征就是,在编辑器窗口左下角的位置上没 ...
- 用Spring Security, JWT, Vue实现一个前后端分离无状态认证Demo
简介 完整代码 https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom 运行展示 后端 主要展示 Spring Security ...
- MySQL将一个表的查询结果作为本表的查询条件更新数据
先建一张S01人口统计信息表: drop table if exists S01人口统计信息; /*================================================== ...
- P1035 级数求和
题目描述 已知:S_n= 1+1/2+1/3+…+1/nSn=1+1/2+1/3+…+1/n.显然对于任意一个整数KK,当nn足够大的时候,S_nSn大于KK. 现给出一个整数KK(1 \le k ...
- 【nodejs原理&源码赏析(6)】深度剖析cluster模块源码与node.js多进程(下)
[摘要] cluster模块详解 示例代码托管在:http://www.github.com/dashnowords/blogs 阅读本章需要先阅读本系列前两章内容预热一下. 一. 引言 前两篇博文中 ...
- Frida用法之函数操作
Frida接口功能介绍 Frida是个so级别的hook框架,它可以帮助开发.安全人员对指定的进程的so模块进行分析.它主要提供了功能简单的Python接口和功能丰富的JS接口,使得hook函数和 ...
- 洛谷 题解 P5534 【【XR-3】等差数列】
我又双叒叕被包菜辣! 题目 这道题是不久前的考试题,现在来水一篇题解 扯回正题 题目很明显的告诉你了,这是一个等差数列, 然后,还告诉你了首项, 第二项, 项数. 你还想咋滴 告诉了你首项和第二项,相 ...