方法重写 如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法: #!/usr/bin/env python #coding:utf8 class Parent: def myMethod(self): print '调用父类方法' class Child(Parent): def myMethod(self): print '调用子类方法' c = Child() c.myMethod() 执行以上代码输出结果如下: 调用子类方法 下表列出了一些通用的功能,你可以在自己的类中重…
python 面向对象 python 从设计之初就已经是一门面向对象的语言,正因为如此,在python中创建一个类和对象是很容易的. 对象对象奇数简介 类(Class): 用于描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例 类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外.类变量通常不做为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可…
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象.根据类来创建对象被称为实例化,这让你能够使用类.8.1.1 创建dog类  下面创建一个dog类: 1calss Dog(): 2 3    def __init__(self,name,age): 4        self.name = n…
python语法学习面向对象之继承 转载自:http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重…
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“特征”和“行为” 2.面向过程和面向对象 #面向过程指的是变量和函数.“散落”在各种文件中,或者在文件的各个位置,相互没有联系,函数与变量没有相关性,非常不利于维护,设计模式不清晰. #为此才有面向对象概念的诞生. #面向对象指的是相关的变量和函数都“封装”在对象里面,以对象为单位来管理代码.好处在…
传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法   class 派生类…
Python是一门高级语言,支持面向对象设计,如何设计一个符合Python风格的面向对象的类,是一个比较复杂的问题,本文提供一个参考,表达一种思路,探究一层原理. 目标 期望实现的类具有以下基本行为: __repr__ 为repr()提供支持,返回便于开发者理解的对象字符串表示形式. __str__ 为str()提供支持,返回便于用户理解的对象字符串表示形式. __bytes__ 为bytes()提供支持,返回对象的二进制表示形式. __format__ 为format()和str.format…
1.什么是类和类的对象? 类是一种数据结构,我们可以用它来定义对象,后者把数据值和行为特性融合在一起,类是现实世界的抽象的实体以编程形式出现.实例是这些对象的具体化.类是用来描述一类事物,类的对象指的是这一类事物的一个个体.例如:"人"就是一个类,而男人,女人,小孩等就是"人"这个类的实例对象:再比如"动物"也是一个类,而猫,狗等就是"动物"这个类的实例对象. 1.1 类的构成 在Python中,类(class)由3个部分构成…
当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀.我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容.这个坑是如此之大,犹豫再三,还是只捡一下重要的内容来讲吧,不足的内容只能靠大家自己去补充了. 惯例声明一下,我使用的版本是 python2.7,版本之间可能存在差异. 好,在开讲之前,我们先思考一个问题,看代码:…
一.字符编码 ASCII表是是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号.由于中国也需要自己的语言,但剩下的128个表不能满足中国汉字的需求,所以采用了索引的方法,建立了中国字符编码即简体中文的GB2312和用于繁体中文的big5. 后来随着发展汉字库也有所增加,1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区.2000…
几个特殊的函数(待补充) python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda >>> g = lambda x,y:x+y #x+y,并返回结果 >>> g(3,4) 7 >>> (lambda x:x**2)(4) #返回4的平方 16 lambda函数的使用方法: 在lambda后面直接跟变量 变量后面是冒号 冒号后面是表达式,表达式计算…
pycharm调试模式 假设我们的程序在运行过程中命中了一个错误,那我们如何定位错误发生的位置?这就需要进行调试. 在Pycharm中我们可以在其中直接对程序进行调试,唯一需要做的准备工作就是在程序必要的地方加设断点. 断点 一个breakpoint标记了一个行的位置,当程序运行到该行代码的时候,Pycharm会将程序暂时挂起以方便我们对程序的运行状态进行分析.Pycharm支持若干中类型的断点 types of breakpoints,可以通过对应图标进行分辨. 上图中左边红色的点就是"断点&…
规则一: 一个python文件中,只写一些可以运行的功能测试代码写在这句代码下面 if __name__ =='__main__': 在讲这边的时候,我不是很懂参考了一篇博客,地址如下:http://blog.konghy.cn/2017/04/24/python-entry-program/ 简单来理解,可以把    if __name__ =='__main__':     理解为python程序的入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语…
1. 多态 1.1 什么是多态 多态指的是一类事物有多种形态. 动物有多种形态:人,狗,猪. import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal): #动物的形态之一:人 def talk(self): print('say hello') class Dog(Animal): #动物的形态之二:狗 def ta…
本文将在上篇文章二维向量Vector2d类的基础上,定义表示多维向量的Vector类. 第1版:兼容Vector2d类 代码如下: from array import array import reprlib import math class Vector: typecode = 'd' def __init__(self, components): self._components = array(self.typecode, components) # 多维向量存数组中 def __ite…
一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协议 对象必须提供一个 next 方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 二.生成器的分类(两类) python中生成器的表现形式 python中提供生成器的方式 一类是生成器函数:另一类是生成器表达式 第一类:关于生成…
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式) rb:   以字节方式读文件 wb: 以字节方式写文件ab: 以字节方式追加文件 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,所以不能指定编码 1. rb #错误举例 f = open ('test1.py', 'rb', encoding = 'utf…
写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让我觉得幸福感十足.每天上午看视频学习,下午总结.自己练习.今日份的鸡汤,所有看上去厉害的事情都是由一件件不起眼的小事构成的呢!加油啦 一.Python 学习及开发环境(pycharm)安装与配置 视频讲课老师说这个很好用,至于安装很简单,就是去 http://www.jetbrains.com/py…
疑惑1:windows下的python  如何设置显示汉字 推荐几个学习网址,也方便自己以后查看: http://pmghong.blog.51cto.com/3221425/d-10 www.w3cschool.cc/python/python-tutorial.html http://sebug.net/paper/python/index.html 第一次接触python 首先的问题就是,在for 和while 后面忘了加 ‘:’  !!!啊 Python返回数组(List)长度的方法 >…
目录: 类(class)和实例 类 实例 小测试 对象(object) 属性和方法 类的创建 伪代码 示例代码 属性(attribute) 方法(method) 类的实例化 实例对象调用类属性和方法 调用类的属性 调用类的方法 示例代码 特殊参数:self 1.代指实例化对象的作用 2.定义方法必传self 3.调用方法传参时self可忽略 初始化方法(构造函数) 1.定义初始化方法 2.初始化方法的作用 3.初始化方法接收其他参数 番外 - 面向对象 面向过程 面向对象 面向对象的好处 类(c…
模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 0.0 模块是程序 任何python程序都可以作为模块导入.假设写如下程序,并且将它保存为以C:\python\hello.py #hello.py print "hello,world!" 下面通过python解释器调用: >>> import sys >>…
模块 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说,可以把模块理解为一个包含了许多强大功能(方法)的包.在python标准库中就包含许多模块,有很多模块内的方法都会被经常使用到. python模块有什么用? 模块内有许多函数方法,利用这些方法可以更简单的完成许多工作. 模块可以在文件中永久保存代码.在python交互式解释器中操作输入的代码,在退出python时是不会…
装饰器 一.装饰器的本质 装饰器的本质就是函数,功能就是为其他函数添加附加功能. 利用装饰器给其他函数添加附加功能时的原则: 1.不能修改被修饰函数的源代码        2.不能修改被修饰函数的调用方式 举例:计算以下一段程序执行时间 #程序:计算0—19的和 def cal(l): res = 0 for i in l: res += i return res print(cal(range(20))) #给上述程度增加时间模块 import time def cal(l): start_t…
迭代器 1.迭代器协议 对象必须提供一个 next 方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象 实现了迭代器协议的对象(如何实现:对象内部定义一个_iter_()方法) 协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如 for循环,sum,min,max函数等)使用迭代器协议访问对象 3.关于for循环机制 for循环的本质:循环所有对象,全都是使用迭代器协议 思考:for 循环的…
1.实现1-100的所有的和 #!/usr/bin/env python #encoding:utf8 '''实现1-100的所有的和 1. 使用列表解析获取0-100的列表 2. 使用reduce内置函数和匿名函数计算列表的总和''' number_list = [x for x in xrange(101)] #使用xrange和range都可以,不过xrange的性能要优于range sum_list = reduce(lambda x, y:x+y,number_list ) print…
re 正则表达式 python正则表达式在线检验网站 python re正则表达式语法 匹配字符 语法 解释 表达式 匹配实例 . 匹配任意除"\n"以外的任何字符 a.c abc \ 转义符,改变原来符号含义如果字符串中有字符 * 需要匹配,可以使用 \* 或者字符集[*] a.ca\c abeaceade [] 字符集.对应的位置可以是字符集中任意字符.字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c].第一个字符如果是^则表示取反,如[^abc]表示不是abc的…
logging 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在python中,我们不需要第三方的日志组件,python为我们提供了简单易用.且功能强大的日志模块:logging. logging模块支持将日志信息保存到不同的日志域中,如:保存到日志文件中:以邮件的形式发送日志信息:以http get或post的方式提交日志到web服务器:以windows事件的形式记录等等. logging官网 参考blog 简单的例子: # 导入 log…
异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在python无法正常处理程序时就会发生一个异常. 异常是python对象,表示一个错误. 当python脚本发生异常时我们需要捕获处理它,否则程序会终止执行. python异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.也可以使用该功能来调试python程序. 异常处理 断言(Assertions) 异常处理 捕获异常可以使用try/except语句. try…
生成式 列表生成式 字典生成式 集合生成式 嵌套列表生成式 列表生成式 列表生成式是python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理.语法格式为: [exp for val in collection if condition] 看几个例子: 1.将列表中的字符串转换为小写组成一个新的列表 L = ['HELLO','WORLD'] print [s.lower() for s in L if isinstance(s,str)] 运行结果…
文件 文件,在python中,他是一种类型的对象,类似前面已经学过的其他数据类型,包括文本的.图片的.音频的.视频的等等,还有不少没见过的扩展名的.事实上,在linux操作系统中,所有的东西都被保存到文件中. 文件属性 >>> dir(file) ['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__',…