Python面向对象学习
木瓜小少年
追求高效率,解放自己。
展开
-
Web静态服务器-7-gevent版
from gevent import monkeyimport geventimport socketimport sysimport remonkey.patch_all()class WSGIServer(object): """定义一个WSGI服务器的类""" def __init__(self, port, documents_root): ...原创 2019-05-22 00:03:56 · 128 阅读 · 0 评论 -
Web静态服务器-6-epoll
IO 多路复用就是我们说的select,poll,epoll,有些地方也称这种IO方式为event driven IO。select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理就是select,poll,epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。epoll简单模型...原创 2019-05-22 00:02:11 · 104 阅读 · 0 评论 -
Web静态服务器-5-非堵塞模式
单进程非堵塞 模型#coding=utf-8from socket import *import time# 用来存储所有的新链接的socketg_socket_list = list()def main(): server_socket = socket(AF_INET, SOCK_STREAM) server_socket.setsockopt(SOL...原创 2019-05-21 23:57:48 · 106 阅读 · 0 评论 -
Web静态服务器-4-多线程
#coding=utf-8import socketimport reimport threadingclass WSGIServer(object): def __init__(self, server_address): # 创建一个tcp套接字 self.listen_socket = socket.socket(socket.AF_I...原创 2019-05-21 23:54:00 · 120 阅读 · 0 评论 -
Web静态服务器-3-多进程
#coding=utf-8import socketimport reimport multiprocessingclass WSGIServer(object): def __init__(self, server_address): # 创建一个tcp套接字 self.listen_socket = socket.socket(socke...原创 2019-05-21 23:53:04 · 115 阅读 · 0 评论 -
Web静态服务器-2-显示需要的页面
#coding=utf-8import socketimport redef handle_client(client_socket): "为一个客户端进行服务" recv_data = client_socket.recv(1024).decode('utf-8', errors="ignore") request_header_lines = recv...原创 2019-05-21 23:49:50 · 92 阅读 · 0 评论 -
Web静态服务器-1-显示固定的页面
重点:在拼接请求头时,不要使用 r 去转义!!!血泪教训,重要的事情说三遍!!!#coding=utf-8import socketdef handle_client(client_socket): "为一个客户端进行服务" recv_data = client_socket.recv(1024).decode("utf-8") request_header...原创 2019-05-21 23:39:45 · 166 阅读 · 0 评论 -
MySQL基础知识--数据完整性
数据完整性一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束数据类型可以通过查看帮助文档查阅所有支持的数据类型 使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间 常用数据类型如下: 整数:int,bi...原创 2019-05-21 22:36:56 · 145 阅读 · 0 评论 -
Python编程-进程、线程、协程对比
进程、线程、协程对比请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子) 他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程 只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程 这个老板为了提高生产率,想...原创 2019-04-21 01:30:41 · 113 阅读 · 0 评论 -
Python编程-多任务之协程 一
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。但是,是否所有的数据类型都可以放到for....原创 2019-04-21 01:16:55 · 99 阅读 · 0 评论 -
Python编程-多线程之共享全局变量
多线程-共享全局变量from threading import Threadimport timeg_num = 100def work1(): global g_num for i in range(3): g_num += 1 print("----in work1, g_num is %d---"%g_num)def work2...原创 2019-04-08 22:47:36 · 389 阅读 · 0 评论 -
Python编程-多任务之进程
进程以及状态1. 进程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的2. 进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态。就绪态:运行的条件都已经慢去,正...原创 2019-04-08 23:03:24 · 199 阅读 · 0 评论 -
Python编程-多任务之线程
多任务的概念什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任...原创 2019-04-07 23:11:40 · 964 阅读 · 0 评论 -
网络编程 3 tcp通信
TCP简介TCP介绍TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终止连接三个步骤。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,"打电话""TCP特点...原创 2019-04-07 22:53:29 · 746 阅读 · 0 评论 -
网络编程 2 套接字socket
socket简介1、不同电脑间的进程之间如何通信首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。这样利用ip地址,协议,端口就可以标识...原创 2019-04-07 22:24:42 · 275 阅读 · 0 评论 -
网络编程 1
网络通信概述:1、什么是网络相信大家对网络都不陌生,大家用的微信、淘宝、浏览器等等应用都是要在有网络的环境下才可以使用。那么,网络就是:①、网络就是一种辅助双方或者多方能够链接在一起的工具。②、如果没有网络,可想单机的世界是多么的孤单。2、使用网络的目的就是为了让多方连接在一起,然后可以进行数据传递,所谓的网络编程就是,让不同的联网设备上的应用能够进行数据交换,即进程之...原创 2019-04-07 22:09:23 · 96 阅读 · 0 评论 -
Python的面向对象基本概念OOP
面向对象,是相对于面向过程来讲。面向对象,相对于函数,是更大的封装,根据职责在一个对象中封装多个方法。特点:万物皆对象。。。类和对象注重对象和职责,不同的对象承担不同的职责 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路 需要在面向过程基础上,再学习一些面向对象的语法类,是对一群具有相同特征或行为的事物的一个统称,是抽象出来的,不能直接使用。ps:...原创 2019-03-10 19:57:41 · 117 阅读 · 0 评论 -
私有属性和私有方法
01. 应用场景及定义方式应用场景在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而不希望在外部被访问到 私有属性就是对象不希望公开的属性 私有方法就是对象不希望公开的方法定义方式在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法02. 伪私有属性和私有方法(科普)Python中,并...原创 2019-03-14 23:21:45 · 102 阅读 · 0 评论 -
面向对象基础语法
定义只包含方法的类:在Python中要定义一个只包含方法的类,语法格式如下:def 类名: def 方法名(self,形参): xxxx方法的定义格式和函数几乎一样,区别在于第一个参数必须是self。创建对象:当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:对象变量 = 类名()引用概念的强调:在面向对象开发中,引用的概念是同样适...原创 2019-03-14 23:16:54 · 166 阅读 · 0 评论