Python笔记(十七)_面向对象编程
面向对象编程
概念:简称OOP,是一种程序设计思想;OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数
面向对象的设计思想:抽象出类class,根据类class创建实例对象instance
类: 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例
对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法
类对象:当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用或使用相关的属性或方法
在类外部获取 属性 和 方法,通过实例对象名获取
在类内部获取 属性 和 方法,通过self获取
面向对象的三大特点:封装、继承、多态
封装:将客观事物封装成抽象的类,而且将类的属性和方法进行权限设定,控制外部访问的行为
继承:子类继承父类的所有功能,并在父类的功能上进行扩展
多态:父对象可以根据其被赋予的不同子对象,同一方法在执行时按照子类呈现出不同的执行过程
__init__(self)
魔法方法__init__只能返回None,不可返回除了None以外的任何对象,但是可以打印
__init__方法在创建一个实例对象时会被默认调用
__init__中的self参数不需传递,python解释器会自动把当前的实例对象传递进去
self代表的是类的实例,代表当前对象的地址,类会通过self来判断是哪个对象调用了方法
当实例对象需要有明确的初始化步骤的时候,可以在__init__方法中部署初始化的代码
dir()函数
该函数可以获得一个对象的所有属性和方法,它返回一个包含字符串的list
比如,获得一个str对象的所有属性和方法:
>>> dir('temp')
['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']
类似__xxx__的属性和方法在Python中都是有特殊用途的,比如__len__方法返回长度
在Python中,如果你调用len()函数试图获取一个对象的长度,实际上,在len()函数内部,它自动去调用该对象的__len__()方法,所以,下面的代码是等价的:
>>> len('temp')
4
>>> 'temp'.__len__()
4
Python笔记(十七)_面向对象编程的更多相关文章
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- python学习笔记15(面向对象编程)
虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界 ...
- python笔记三(面向对象)
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- guxh的python笔记五:面向对象
1,面向对象编程思想 类:一类具有相同属性的抽象 属性(静态属性):实例变量.类变量.私有属性 方法(动态属性):构造函数.析构函数(默认就有).函数.私有函数 对象/实例:类经过实例化后,就是对象/ ...
- 洗礼灵魂,修炼python(31)--面向对象编程(1)—面向对象,对象,类的了解
面向对象 1.什么是面向对象 (图片来自网络) 哈哈,当然不是图中的意思. 1).面向对象(Object Oriented,OO)是软件开发方法.利用各大搜索引擎得到的解释都太官方,完全看不懂啥意思对 ...
- 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过 ...
- Python开发基础-Day17面向对象编程介绍、类和对象
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...
- Java编程基础阶段笔记 day 07 面向对象编程(上)
面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...
随机推荐
- [2019杭电多校第二场][hdu6599]I Love Palindrome String(回文自动机&&hash)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6599 题目大意为求字符串S有多少个子串S[l,r]满足回文串的定义,并且S[l,(l+r)/2]也满足 ...
- HTMLTestRunner_PY3脚本代码
HTMLTestRunner_PY3.py文件代码如下: # -*- coding: utf-8 -*- """ A TestRunner for use with th ...
- 什么是 Python?
Python 是一种编程语言,它有对象.模块.线程.异常处理和自动内存管理,可以加入其他语言的对比. Python 是一种解释型语言,Python 在代码运行之前不需要解释. Python 是动 ...
- 关于.net的精彩对话(转)
[序言]我想很多爱好软件编程的网友都像我一样,对微软推出的.net平台充满了好奇,但是看了相关的文档也是一头雾水,还好,Purple很幸运在QQ上遇到了一位.net高手,经过高手的一番教导,Purpl ...
- maven 打包Scala代码到jar包
idea的pom.xml文件配置 <dependencies> <dependency> <groupId>org.scala-lang</groupId&g ...
- GitHub 搭建博客,出现 hexo g -d 报错
想搭建一个个人博客,但是在将博客推送到Github上的时候在git bash 下运行hexo g -d命令出现错误: 错误如下: fatal: HttpRequestException encoun ...
- 关于conda-新手必读
一.管理conda 通过anaconda来安装python及python包,让你不必关心系统是否安装了一些依赖,如zlib等等,anaconda已经集成了这些依赖,可以方便的安装python 下载请点 ...
- linux系统安装telnet服务
linux安装telnet 安装前准备工作 1.安装telnet服务需要三个软件包:telnet.telnet-server和xinetd包. telnet,telnet-sever,xinetd软件 ...
- Kubernetes部署DNS
前言 阅读地址 http://thoreauz.com/2017/04/16/docker/Kubernetes%E9%83%A8%E7%BD%B2DNS%E5%92%8CDashboard/ Kub ...
- Ansible笔记(1)---基本概念
一.ansible的作用以及工作结构 1.1.ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func ...