Python面向对象OOP
一 OOP
与C++和Java一样,Python同样具有OOP设计。
过程式:从前到后,一条一条,机器能接受的顺序性方式;方式大概为“首先你应该做什么,第二应该做什么,高级点的做点假设如果遇到什么情况要做什么,或者一件事情要做多少多少遍,… …,”
OOP式:从“类与对象”方式来抽象和理解世界。例如首先物体(Object)大概可以分为“生物”与“非生物”,“生物”又能分为“人、动物、植物”等,“人”又分为“男人,女人”等。。。大自然在世界之巅,不断分类设定。类似于“族谱”,上下之间能“继承”。
类与对象。类是抽象的,是一群的概述,对象是具体的,独立的,例如我存在一个独立的人。对象拥有所在类的属性和方法,同样拥有属于自己对象的属性(方法)。
现实世界中,类拥有属性(attribute)和行为(action);抽象数据中,类拥有数据(data)和方法(method)。类之间,存在继承(inheritance)与改良,类与对象之间,存在实例化。在实例化之后,对象能够在继承的类成员之外,增加属于自己的数据成员。
二 Python OOP
末 Python 中的坑
Python 很强大,坑也不少,一个一个填吧。
一 Python 处理中文及编码方式
Python3.0之前,由于编码的缘故,处理中文夹杂情况,十分痛苦。要想彻底让它不是问题,第一,理解编码方式之间转换;第二,几个实际例子在手。
二 Python基础语法
1. 浅拷贝赋值,传值与传地址调用
首先看两个例子,关于一个函数参数为int和list两种类型时的不同操作,以增加++一个值为例。
# 传值value参数a = 1def change_integer(a):a = a + 1return a# 传地址address参数b = [1,2,3]def change_list(b):b[0] = b[0] + 1return b# test valueprint change_integer(a)print 'a = ',aprint change_list(b)print 'b[0] = ',b[0]#Result:>a = 1>b[0] = 2
第一个integer例子中,将一个int类型变量传递给函数,原整型变量a不发生变化。
第二个list例子中,将一个list类型变量传递给函数,原listb会发生变化。
原因在于,对于基本数据类型(例如int),函数会在内存中复制一个新的变量,从而不影响原来变量,这叫“值传递”;
对于list来说,并不属于基本变量,函数传递的是一个指针,指向序列在内存中的地址,从而影响原来的值,称为“指针传递”。
同理,对于matrix或者array类型的数据,也属于非基本类型,因此array_a = array_b这样行为,array_b做操作时同样会影响到array_a,特别注意!!
Python面向对象OOP的更多相关文章
- [Python_4] Python 面向对象(OOP)
0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...
- 如何吃透Python的面向对象(OOP)
本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...
- python面向对象基本概念(OOP)
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- python 面向对象学习
------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介
前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...
- 【转】Python 面向对象(初级篇)
[转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
随机推荐
- WebForm Repeater的事件、后天数据展示--2017年1月8日
Repeater的Command操作 1.ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件 CommandName : 判断点击的是什么按钮,e.Comma ...
- winform 曲线(贝塞尔) 分类: WinForm 2014-12-29 16:52 109人阅读 评论(0) 收藏
<span style="font-size:14px;">//覆盖OnPaint事件</span> <span style="font-s ...
- (转)LINUX的端口和服务
一.端口和服务的关系 端口号与相应服务的对应关系存放在/etc/services文件中,这个文件中可以找到大部分端口.使用netstat命令显示的服务名称也是从这个文件中找的.有人说将这个文件中的相应 ...
- [RxJS] Stream Processing With RxJS vs Array Higher-Order Functions
Higher order Array functions such as filter, map and reduce are great for functional programming, bu ...
- Qss
*{ font-size:13px; color:white; font-family:"宋体"; } CallWidget QLineEdit#telEdt { font-siz ...
- 史上最全WebView使用,附送Html5Activity一份
本文来自:http://www.jianshu.com/users/320f9e8f7fc9/latest_articles感谢您的关注. WebView在现在的项目中使用的频率应该还是非常高的.我个 ...
- linux中echo的用法 分类: 学习笔记 linux ubuntu 2015-07-14 14:27 21人阅读 评论(0) 收藏
1.echo命令我们常用的选项有两个,一个是-n,表示输出之后不换行,另外一个是-e,表示对于转义字符按相应的方式处理,如果不加-e那么对于转义字符会按普通字符处理. 2.echo输出时的转义字符 \ ...
- iOS UI控件继承关系图
闲来无事,把UI控件的继承关系图整理下来,供自己和大家使用.
- springmvc xml 空模板
<?xml version="1.0" encoding="UTF-8"?><!-- Bean头部 --><beans xmlns ...
- U3D 背景音效和事件触发音效
首先,想要在一个游戏添加背景音乐其实很简单,就是利用一个组件 就能够实现音频的播放,不过要实现通过某一个事件,来进行声音的播放,比如跳跃啊什么的: public AudioClip jumpclips ...