面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问题. 单继承与多继承 class Par1: pass class Par2: pass class ch1(Par1):#单继承 pass class ch2(Par1,Par2):#多继承 pass 派生中方法调用的规则 子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类)…
面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) class A: __N=0 #类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N,会变形为_A__N def __init__(self): self.__X=10 #变形为self._A__X def __foo(self):…
类与对象 类即类别.种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体. 类的定义 class 类名: 属性1 属性2 def 方法(self,arg): pass __init__()方法 __init__()叫做初始化方法(或构造方法), 在类被调用时,这个方法(虽然它是函数形式,但在类中就不叫函数了,叫方法)会自动执行. class animal: def __init__(self,type,name): self.type = typ…
正则表达式 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现,所以使用时要导入re模块.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 先说几个元字符  . ^ $ * + ? { } import re ret = re.findall('t...r', 'hellotomorrow') print(ret) # ['tomor'] ret = re.findall('^r.w', 'r1wh…
---恢复内容开始--- 进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情.借助这个包,可以轻松完成从单进程到并发执行的转换.multiprocessing支持子进程.通信和共享数据.执行不同形式的同步,提供了Process.Queue.Pipe.Lock等组件. multipro…
多线程 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程 程序的执行实例称为进程. 每个进程提供执行程序所需的资源.进程具有虚拟地址空间.可执行代码.系统对象的打开句柄.安全上下文.唯一进程标识符.环境变量.优先级类.最小和最大工作集大小以及至少一个执行线程.每个进程都是用一个线程(通常称为主线程)启动的,但是可以从它的任何线程创建额外的线程. 线程…
序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语 言中也被称之为serialization,marshalling,flattening等等,都是一个意思. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling. json 如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好 的方法是序列…
一.模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module) 模块导入的方法 1.import import module1[, module2[,... moduleN] 这种方法在使用模块中的函数的时候需要在前面加上它所属的模块,像这样 impo…
日志操作 一.logging模块 %(message)s 日志信息 %(levelno)s 日志级别 datefmt 设置时间格式 filename 设置日志保存的路径 level 设置日志记录的级别 filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”,“a”表示在原有的日志之后增添日志,“w”表示清除原有的日志后再添加新的日志. 配置日志级别.日志格式.输出位置 import logging logging.basicConfig(level…
模块 一.time模块 时间戳(timestamp) :时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 元组(struct_time)   :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时) import time #1 ()返回当前时间戳 print(time.time()/(365*24*60*60)+1970) #2018.8360429179454 #2 localtime(secs)将一个时间戳转…
生成器 列表生成式 用于快速地生成一个列表 a = [x*x for x in range(1,9)] print(a) #输出[1, 4, 9, 16, 25, 36, 49, 64] 也可以用于生成函数结果的列表 def f(n): return n**3 a = [f(x) for x in range(1,9)] print(a) #输出[1, 8, 27, 64, 125, 216, 343, 512] 迭代器 迭代器是一个带状态的对象,他能在你调用 next() 方法的时候返回容器中…
装饰器 装饰器是用来处理其他函数的函数,主要作用是在不修改原有函数的情况下添加新的功能,装饰器的返回值也是一个函数对象. 简单的装饰器 import time def show_time(f): def inner(): start = time.time() f() end = time.time() print('time: %s'%(end-start)) return inner @show_time def fun1(): print('hello') time.sleep(1) fu…
函数 一.函数的创建 简单格式 def function_name(参数表): 函数体 return 如果没有写return,函数会默认返回一个none 二.函数的参数 必需参数: 调用函数时必需参数须以正确的顺序传入,调用的数量必须和声明时的一样. def func1(name,age): print('my name is %s,i am %d years old'%(name,age)) func1('smilepup',20) #输出my name is smilepup,i am 20…
集合 集合是一个无序的,不重复的数据组合,是python基本的数据类型,把不同的元素组成一起就形成集合. 一.创建集合 s = set('smile')list = ['1','2','3']print(s) #{'i', 'm', 's', 'e', 'l'}s1 =set(list)print(s1) #{'1', '3', '2'} 集合分两种:可变集合.不可变集合 可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素. 不可变集合(frozenset…
一.输入与输出 1.输入 input("number:") num = input("number:") 下面一段可以把输入的信息存在num中. 注意:输入的信息会被认为是字符串,如果要输入数字进行运算要先把输入的信息进行强制类型转换,如result = int(num) - 1 2.输出 num = input("number:") print("num=",num) 将输入的num输出.输出时注意:如果输出的数据不是字符串…
socket基础 网络通信要素: A:IP地址   (1) 用来标识网络上一台独立的主机 (2) IP地址 = 网络地址 + 主机地址(网络号:用于识别主机所在的网络/网段.主机号:用于识别该网络中的主机) (3) 特殊的IP地址:127.0.0.1(本地回环地址.保留地址,点分十进制)可用于简单的测试网卡是否故障.表示本机. B:端口号:  (1) 用于标识进程的逻辑地址.不同的进程都有不同的端口标识. (2) 端口:要将数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用…
深浅拷贝 一.浅拷贝 列表中存储的是数据的内存地址,当我们要查询或修改列表中的数据时,我们是通过列表中的地址找到要访问的内存.当我们修改列表中的数据时,如果修改的是一个不可变类型(整型,长整型,浮点数,复数,布尔,字符串,元组),会开拓一个新的内存空间用于存放新的数据,然后把列表中的地址修改为存放新数据的地址,此时没有出现问题.但当列表中存的不是一个简单的数据,而是一个可变类型(列表,字典),就会出现问题.下面用一个例子来解释: print('修改前')a = [[1,2],3,4]b = a.…
文件基本操作 一.打开文件 f = open('11','r')#open('file path','mode') 创建一个文件对象 文件有多种打开模式: 1. 'r':新建一个文件对象以只读方式打开文件.读文件的指针将会放在文件的开头. f = open('11','r')#open('file path',mode') data = f.read() print(data)f.close() #输出123456789 2.‘w’:新建一个只用于写文件的文件对象 f = open('11','…
字符串操作 一.输出重复字符串 print('smile'*6) #输出6个smile 二.通过引索输出部分字符串 print('smile'[1:]) print('smile'[1:3]) #输出 #mile #mi #ims 此处与之前的列表切片规则相同. 三.用in检查字符串内容 a = 'Tomorrow will be a better day. ' print('day' in a) print('zzz' in a) #输出 #True #False 若字符串中没有对应的字符串,…
字典 字典是另一种可变容器模型,且可存储任意类型对象. 一.添加 (1)直接添加 dict={'name':'smilepup'} dict['age']=20 dict['name']='piggy' print(dict) #输出{'name': 'piggy', 'age': 20} 若输入的键存在,就把键对应的值更新为新的值. 若输入的键不存在,就把输入的键值对添加进字典. (2)setdefault()方法 dict={'name':'smilepup'} a = dict.setde…
一.列表 列表与数组相似,定义一个列表 a=[1,2,3,4,5] 1.基本操作 a=[1,2,3,4] #切片 范围取值时,包括第一项但不包括最后一项,顾头不顾尾 print(a[0:]) #从头到尾取值,输出1 2 3 4 print(a[1:3]) #从第2位取值到第4位,输出2 3 print(a[0:-1])#从第1位取值到倒数第2位,输出1 2 3 print(a[3::-1])#从第4位倒着取值到第1位,输出4,3,2,1 a[start:end:step] #添加 append…
一.字符串格式化 利用一段注释记录想要输出的字符串格式,并用 %s . %d 或 %f 依次代替要输出的数据(%s代表字符串,%d代表数字,%f代表浮点数),然后在这段注释之后依次加上要输出的数据. name = input("Name:") num = input("Number:") msg = """ ------%s------ Name: %s Number:%d -------------- ""&quo…
一.算术运算符 加法:+,减法:-,乘法*,除法/,整除(地板除)//,取余%,乘方**.  二.逻辑运算符 且:and,或:or,非:not 优先级:not>and>or 短路原则: 对于and,如果前面的条件为假,那么这个and前后两条件组成的表达式的运算结果就一定为假,第二个条件就不会被计算. 对于or,如果前面的条件为真,那么这个or前后两条件组成的表达式的运算结果就一定为真,第二个条件就不会被计算. 三.while循环  基本用法 num = 0 while num<=100:…
python是一种面向对象的编程语言,虽然与C++一样,支持面向过程的程序设计,python完全可以使用函数.模块等方式来完成工作,但是当使用python编写一个较大的项目时,则应该考虑使用面向对象的方法,以便于更好地对项目进行管理. 1.python的类特性: ① 类的抽象性:类是对具有共同方法和属性的一类对象的描述. ② 类的封装性:类将属性和方法封装,外部是不可见的,只有通过类提供的接口才能与属于类的的实例对象进行信息交换. ③ 类的继承性:类可以由已有的类派生,派生出来的类拥有父类方法和…
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 二.创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对象" 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象…
博客部分内容转自:http://www.cnblogs.com/wupeiqi/p/4493506.html 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法 面向对象编程介绍 面向过程:根据业务逻辑从上到下写垒代码 (如:编写备份代码,第一步做什么,第二部做什么……) 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” (如:cs游戏中,角色就是一个对象,对这个角色进行编程…
面向对象 介绍(特性(class.object--->封装.继承,多态)).--->世界万物,皆可分类:世界万物,皆可对象 只要是对象,就肯定属于某种品类:只要是对象,就肯定有属性 你是上帝  地球---> 山川,河流,大海,森林 --->飞禽-飞,吃虫子,下蛋,(几百种鸟(布谷鸟-飞,吃虫子,下蛋,唱歌:乌鸦-飞,吃虫子,下蛋....)),走兽(狮子-百兽之王:老虎-森林之王) 臭鱼烂虾---->人-思考,说话,吃喝拉撒睡 语法(属性.方法.构造函数.析构函数(在实例释放.…
概述 一.Python编程方式 面向过程编程:根据业务逻辑从上到下磊代码 面向函数编程:将某功能代码封装到函数中,将来直接调用即可,无需重新写 面向对象编程:对函数进行分类.封装 二.面向过程编程 while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 三.面向函数编程…
一.类和实例 1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 2.对象:通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 3.类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 4.实例变量:定义在方法中的变量,只作用于当前实例的类. 5.对“类”和“对象”的使用: 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能. 对象则是…
面向对象的学习笔记   关键要素: 类:class 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法.   数据成员: 类的不同属性数据   对象: 类的一个实例   方法: 类中定义的函数,实现相关的功能   面向对象编程: 简称oop 是一种程序设计思想,oop把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数(方法) 面向对象的设计思想是从自然界中来的,因为在自然界中,类和实例(instance)的概念是很自然的.class是一种抽象概念,比如…