一 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 = 1
def  change_integer(a):
    a = a + 1
    return a

# 传地址address参数
b = [1,2,3]
def change_list(b):
    b[0] = b[0] + 1
    return b

# test value
print change_integer(a)
print 'a = ',a

print 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的更多相关文章

  1. [Python_4] Python 面向对象(OOP)

    0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...

  2. 如何吃透Python的面向对象(OOP)

    ​本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...

  3. python面向对象基本概念(OOP)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  4. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  5. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  6. python 面向对象学习

    ------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...

  7. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

  8. Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

    前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...

  9. 【转】Python 面向对象(初级篇)

    [转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

随机推荐

  1. Relocation - POJ 2923(状态压缩+01背包)

    题目大意:有个人需要搬家,有N件物品,给个物品的重量是 w[i] 然后又两个车,每个车的载重量分别是C1和C2,求最少需要运输多少次才能把这些物品全部运输完毕. 分析:刚开始就发现物品数不多,想着直接 ...

  2. crontab使用--linux下的定时任务程序

    crontab是一个linux下的定时运行程序,如果我们想让自己的程序定时执行, 可以把自己的程序交给这个程序来完成 第一步:配置crontab的脚本的默认编辑器,它的默认的编辑器不好用,我们配置vi ...

  3. 与IO相关的等待事件troubleshooting-系列5

    'db file scattered read'         这是另一种常见的等待事件.他产生于Oracle从磁盘读取多个块到Buffer Cache中非连续(" scattered&q ...

  4. Pattern()和Matcher() 用法

    1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.  它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个 ...

  5. bzoj2822: [AHOI2012]树屋阶梯

    咦,这里有好多东西https://en.wikipedia.org/wiki/Catalan_number 每个矩形最多贡献一个拐角 枚举左上角的点和那个拐角是一个矩形 #include<cst ...

  6. Python - 字典(dict) 详解 及 代码

    字典(dict) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17291329 字典(dict)是表示映射的数据 ...

  7. 【设计模式 - 10】之外观模式(Facade)

    1      模式简介 外观模式隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口.外观模式往往涉及到一个类,这个类提供了客户端请求的简化方法和对现有系统类方法的委托调用.外观模式使得系统中的 ...

  8. DM8168 GPIO驱动与測试程序

    本次測试针对GPIO1进行,挑选了GP1[31],引脚的复用默认的就是GPIO 还是老规矩,贴上driver.c,Makefile,test.c: dm8168_gpio.c: #include &l ...

  9. linux mysql命令

    一: 1.启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可. /etc/init.d/mysql start 2.停止 /usr/bin/mys ...

  10. 浏览器中JavaScript执行原理

    本章我们讨论javascript在浏览器中是如果工作的,包括:下载.解析.执行的全过程.javascript的这些讨人嫌的地方我们是知道的: i.需要串行下载 ii.需要解析 iii.需要串行执行 而 ...