04 2017 档案

摘要:RE模块使用方法 (1)finditer 返回迭代器 (2)search:只匹配第一个结果 (3)match:只在字符串开始的位置匹配 (4)split:分割 (5)sub:替换 需要三个参数 (6)compile:编译方法 阅读全文
posted @ 2017-04-28 15:04 qianxiamo
摘要:1.logging模块 等级 debug >info >warning(默认) >error >critical 配置两种方式: 注意:流向只能有一个,屏幕或者文件 2.JSON模块 把对象(变量)从内存中变成可存储或传输的过程称之为序列化;反过来,把变量内容从序列化的对象重新读到内存里称之为反序列 阅读全文
posted @ 2017-04-28 14:57 qianxiamo
摘要:1时间模块 导入时间模块 import time 时间模块的表示方式 小结: 元组则是用来操作时间的 时间形式的转换 注意: 字符串和时间戳不能直接转换 2随机数模块 导入模块 import random 3 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1 阅读全文
posted @ 2017-04-26 15:04 qianxiamo
摘要:一.__slots__ 1.__slots__的概念:是一个变量,变量值可以是列表,元组,或者可迭代对象,也可以是一个字符串。 2.使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例是独立的) 3.为什么要用:节省内存,不会产生新的名称空间。 定义__s 阅读全文
posted @ 2017-04-25 18:58 qianxiamo
摘要:__setitem__ __getitem__ __delitem__这三个函数 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 阅读全文
posted @ 2017-04-25 18:43 qianxiamo
摘要:isinstance(obj,cls)检查obj是否是类的对象 Issubclass(sub,super)检查sub类是否是super类的派生类 反射的概念:指程序可以访问、检测和修改它本身2状态或行为的一种能力(自省)。 Python面向对象中的反射:通过字符串的形式操作对象相关的属性。Pytho 阅读全文
posted @ 2017-04-24 19:28 qianxiamo
摘要:1.封装与扩展性 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用的代码;而外部使用者只知道一个接口(函数),只要接口(函数)名,参数不变,使用者的代码永远无需改变。这就提供了一个良好的合作基础——或者说,只要这个基础约定不变,则代码改变不足为虑。 #类的设计者,轻松的扩展了功 阅读全文
posted @ 2017-04-24 19:24 qianxiamo
摘要:Property的概念:property是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值。 为什么要用property 将一个类的函数定义成特性以后,对象再去使用的时候obj,name根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 除此之 阅读全文
posted @ 2017-04-24 19:21 qianxiamo
摘要:封装的主要原因是保护隐私,隔离复杂度 封装分为两个层面: 第一个层面的封装(什么都不用做):创建类和对象会分别创建二者的名称精简,我们只能用类名.或者obj.的方式去访问里面的名字,这本身就是一种分装。 注意:对于这一层面的封装(隐藏),类名.和实例名.就是访问隐藏属性的接口 第二层面的封装:类中把 阅读全文
posted @ 2017-04-24 19:20 qianxiamo
摘要:1.多态的概念:多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的的概念依赖于继承) 比如:序列类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪 2.多态性 多态性的概念:指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中 阅读全文
posted @ 2017-04-24 19:10 qianxiamo
摘要:1什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 2为什么要有抽象类 如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。 比如我们有 阅读全文
posted @ 2017-04-24 19:06 qianxiamo
摘要:1接口 接口的概念: Java 语言中的接口很好的展现了接口的含义: IAnimal.java /* * Java的Interface很好的体现了我们前面分析的接口的特征: * 1)是一组功能的集合,而不是一个功能 * 2)接口的功能用于交互,所有的功能都是public,即别的对象可操作 * 3)接 阅读全文
posted @ 2017-04-24 19:03 qianxiamo
摘要:1 组合 组合的概念:软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 1.1 组合与继承的区别 组合与继承都是有效地利用已有类的资源的重要方式。但是二者的概念和使用场景皆不同, 1.继承的方式 通过继承建立了派生类与基类之 阅读全文
posted @ 2017-04-24 19:01 qianxiamo
摘要:1 继承 继承的概念:继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类。 python中类的继承分为:单继承和多继承 继承语法如下: 查看继承的方法 __bases__ 如果没有指定基类,python的类会默认继承obj 阅读全文
posted @ 2017-04-24 19:00 qianxiamo
摘要:1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类的数据属性是共享给所有对象 print(id(g1.camp)) #引用的地址是一样的 print(id(Garen.camp)) 输出结果为: 3646 阅读全文
posted @ 2017-04-24 18:53 qianxiamo
摘要:1.对象是关于类而实际存在的一个例子,即实例 #类实例化得到g1这个实例 class Garen: camp='Demacia' def __init__(self,nickname,aggressivity=58,life_value=455): self.nickname=nickname #为 阅读全文
posted @ 2017-04-24 18:51 qianxiamo
摘要:1 初始类 1 声明类 (和声明函数很相似) 类的定义格式 class 类名: '类的文档字符串' 类体 2 创建一个类: class Data: pass Python编程中习惯类名使用单数单词并且首字母大写 类是数据与函数的结合,二者称为类的属性 class Garen: #定义英雄盖伦的类,不 阅读全文
posted @ 2017-04-24 18:48 qianxiamo
摘要:对象(object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。 类,可以看成种类,类型,从一组对象中提取到的相似部分。所有的对象都属于一个类,称为类的实例。 之前学习的数据类型就是类 print(int) print(Garen) 输出结果为: <class ' 阅读全文
posted @ 2017-04-24 18:47 qianxiamo
摘要:一.什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组 阅读全文
posted @ 2017-04-24 18:45 qianxiamo
摘要:作业一 阅读全文
posted @ 2017-04-13 19:02 qianxiamo
摘要:一.匿名函数 匿名函数是lambda定义的没有名字的具有一些小功能的函数 具体形式是 二.内置函数 1) int(), float(), str(), list(), set(), tuple() 和 dict() 这些都是和类型相关的函数 2) map(), reduce() 和 filter() 阅读全文
posted @ 2017-04-13 18:56 qianxiamo
摘要:一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): def wrapper(*args, **kwargs): g = func(*args, **kw 阅读全文
posted @ 2017-04-12 17:45 qianxiamo
摘要:一.迭代器 只要对象本身有_iter_()_方法,那它就是可迭代的 执行__iter__就会生成迭代器 迭代器有__next__用于获取值 __next__超出界限了会报StopIteration异常 迭代器是一次性的, 且只能一直往前迭代 获取生成器的方法: 迭代器 = 可迭代对象.__iter_ 阅读全文
posted @ 2017-04-12 17:39 qianxiamo
摘要:一.基本装饰器 基本装饰器的作用: 在不改变原函数的基础上, 通过装饰器, 给原函数新增某些功能 实现方法: 在原函数上加 @装饰器名字 其中@叫做语法糖 定义装饰器 第一层函数传入参数(用于传入原函数) 第二层使用原函数的同时, 加入需要新增的功能 第一层函数要返回第二层函数名 整个函数形成闭包 阅读全文
posted @ 2017-04-12 17:18 qianxiamo
摘要:一.名称空间与作用域 名称空间分类: 内置名称空间 import this dir(buil-in) 查看全部内置 全局名称空间 局部名称空间 在函数体内等 查询全局和局部 globals()方法可以获得全局的内容 该方法获得的全局内容是调用的时候程序之前已经定义过的全局内容 locals()方法可 阅读全文
posted @ 2017-04-07 19:06 qianxiamo
摘要:一.为什么用函数: 解决代码重用问题 统一维护 程序的组织结构清晰,可读性强二.定义函数 先定义后使用!! def funcname(arg1,arg2,...): """描述信息""" 函数体 return value定义函数可以分为三类:无参函数 foo() 不需要返回值有参函数 bar(x,y 阅读全文
posted @ 2017-04-07 18:49 qianxiamo
摘要:一.文件操作步骤 1.打开文件 使用open() 文件句柄 = open('文件路径', '模式') 2.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。 打开文件的模式有: r ,只读模式【默认模式,文件必须存在,不存在则抛出 阅读全文
posted @ 2017-04-07 17:33 qianxiamo