03 2018 档案

摘要:1. Python是一款编程语言,用于程序员与计算机的沟通,即程序员可以通过编程让计算机实现某些特定功能。 用程序语言开发程序,最终开发出的是一个软件,目前我们使用的软件均是需要运行在操作系统之上的,我了解到之前也有过在没有操作系统的环境下实现编程,但是太过复杂,难以满足现在应用软件的需求。操作系统 阅读全文
posted @ 2018-03-30 19:59 熊猫的黑白照 阅读(325) 评论(0) 推荐(0)
摘要:守护进程 1、守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children 注意:进程之间是互相独立 阅读全文
posted @ 2018-03-30 19:14 熊猫的黑白照 阅读(3878) 评论(0) 推荐(0)
摘要:在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号。本着不光要知其然,还要知其所以然的研究态度,博主搜集了各方面的资料,花了一周内几个小时的闲暇时间深入理解了下GIL,并归纳成此文,也希望读者能通过次本文更好且客观的理解GIL。 GIL是什么 阅读全文
posted @ 2018-03-30 00:51 熊猫的黑白照 阅读(929) 评论(1) 推荐(0)
摘要:最近在看Python的多线程,经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢? 要知其然,更要知其所以然。所以有了下面的深入研究: 首先强调背景: 1、GIL是什么?GIL的全称是Global Interpreter Lock(全局解释器锁),来源是pyt 阅读全文
posted @ 2018-03-30 00:35 熊猫的黑白照 阅读(3209) 评论(0) 推荐(1)
摘要:补充: send()与sendall() 在python socket编程中,有两个发送TCP的函数,send()与sendall(),区别如下: socket.send(string[, flags]) 发送TCP数据,返回发送的字节大小。这个字节长度可能少于实际要发送的数据的长度。换句话说,这个 阅读全文
posted @ 2018-03-29 00:38 熊猫的黑白照 阅读(871) 评论(0) 推荐(0)
摘要:黏包现象 让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd) 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包。 基于tcp协议实现的黏包 #_*_coding:utf-8_*_ fr 阅读全文
posted @ 2018-03-27 15:06 熊猫的黑白照 阅读(406) 评论(0) 推荐(0)
摘要:试想一下这样的场景,你的笔记本电脑在图书馆正常的放着,然后你去了教学区上课去了。然后你想看一下自己电脑前有没有人,然后就可以通过手机发送一条命令,让笔记本电脑拍照,并发送给手机。或者你的同学在你的电脑边,然后你远程用手机发一条指令,让电脑发出鬼叫或者播放音乐什么的··· ··· 但是遗憾的是这个”远 阅读全文
posted @ 2018-03-21 16:47 熊猫的黑白照 阅读(212) 评论(0) 推荐(0)
摘要:一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点 通讯,比如多个Client连接 阅读全文
posted @ 2018-03-21 15:34 熊猫的黑白照 阅读(146) 评论(0) 推荐(0)
摘要:在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。 bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。 bytes对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到 阅读全文
posted @ 2018-03-21 14:50 熊猫的黑白照 阅读(373) 评论(0) 推荐(0)
摘要:一、socket基础知识 在网络编程中的一个基本组件就是套接字(socket).1.有阻塞(同步网络编程)2.有非阻塞(异步网络编程)套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同计算机上,通过套接字相互发送信息. 套接字包括两个: 1.服务套接字 创建一个服务套接字后: 1.让 阅读全文
posted @ 2018-03-20 19:07 熊猫的黑白照 阅读(195) 评论(0) 推荐(0)
摘要:一、模块 1.什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用 阅读全文
posted @ 2018-03-19 21:07 熊猫的黑白照 阅读(462) 评论(0) 推荐(0)
摘要:一、软件开发的架构 1.C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B 阅读全文
posted @ 2018-03-19 17:29 熊猫的黑白照 阅读(200) 评论(0) 推荐(0)
摘要:1、请简述类、对象、实例化、实例这些名词的含义: 2、面向对象的三大特性是什么? 3、什么是方法?类中可以定义哪几种方法? 4、什么是属性?类中可以定义哪几种属性? 5、请简述类方法和静态方法有哪些区别? 6、请简述新式类和经典类的区别? 7、有一个类定义: class Person: def __ 阅读全文
posted @ 2018-03-19 00:38 熊猫的黑白照 阅读(212) 评论(0) 推荐(0)
摘要:1、可迭代对象,迭代器 2、手写装饰器 3、python函数式编程是什么 4、面向对象有哪些内置方法 5、repr和str的区别 Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态。而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态。 例 阅读全文
posted @ 2018-03-19 00:31 熊猫的黑白照 阅读(148) 评论(0) 推荐(0)
摘要:字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。 正则表达式(regular expression)描述了一种字符串匹配的模式(p 阅读全文
posted @ 2018-03-18 00:26 熊猫的黑白照 阅读(177) 评论(0) 推荐(0)
摘要:Time模块 和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 阅读全文
posted @ 2018-03-16 20:56 熊猫的黑白照 阅读(348) 评论(0) 推荐(0)
摘要:异常和错误 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误 什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 python中的异常种类 在python中不同的异常可以用不同的类型(python中统一了类与类型, 阅读全文
posted @ 2018-03-15 23:20 熊猫的黑白照 阅读(161) 评论(0) 推荐(0)
摘要:认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编 阅读全文
posted @ 2018-03-15 20:59 熊猫的黑白照 阅读(202) 评论(0) 推荐(0)
摘要:初识递归 '''递归调用: 在调用一个函数的过程中,直接或者间接调用了该函数本身''' 直接调用: 间接调用: 来个栗子: 递归的最大深度——997 递归函数如果不受到外力的阻止会一直执行下去。关于函数调用的问题,每一次函数调用都会产生一个属于它自己的名称空间,如果一直调用下去,就会造成名称空间占用 阅读全文
posted @ 2018-03-15 00:58 熊猫的黑白照 阅读(141) 评论(0) 推荐(0)
摘要:一、hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5、hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个数据串使用的十六进制表示。摘要算法是一个单向函数,计算容易,如果想要反推摘要算法那是非常喜困难的,而 阅读全文
posted @ 2018-03-14 21:07 熊猫的黑白照 阅读(235) 评论(0) 推荐(0)
摘要:单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置 阅读全文
posted @ 2018-03-13 19:52 熊猫的黑白照 阅读(690) 评论(0) 推荐(0)
摘要:__del__ 析构方法,当对象在内存中被释放时,自动触发执行。 注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。 __new__构造方法 new 阅读全文
posted @ 2018-03-13 18:48 熊猫的黑白照 阅读(142) 评论(0) 推荐(0)
摘要:isinstance(obj,cls) 检查是否obj是否是类 cls 的对象 #对象与类之间的关系 判断第一个参数是否是第二个参数的实例 issubclass(sub, super) 检查sub类是否是 super 类的派生类 #类与类之间的关系 改变对象的字符串显示 __str__ ,__rep 阅读全文
posted @ 2018-03-12 18:47 熊猫的黑白照 阅读(183) 评论(0) 推荐(0)
摘要:一、前言 在上面的代码中,我们必须区分两个概念,f1和“f1"。前者是函数f1的函数名,后者只是一个叫”f1“的字符串,两者是不同的事物。我们可以用f1()的方式调用函数f1,但我们不能用"f1"()的方式调用函数。说白了就是,不能通过字符串来调用名字看起来相同的函数! 二、web实例 考虑有这么一 阅读全文
posted @ 2018-03-12 18:40 熊猫的黑白照 阅读(192) 评论(0) 推荐(0)
摘要:封装 【封装】 隐藏对象的属性和实现细节,仅对外提供公共访问方式。 为什么要封装 封装数据的主要原因是:保护隐私(作为男人的你,脸上就写着:我喜欢男人,你害怕么?) 封装方法的主要原因是:隔离复杂度(快门就是傻瓜相机为傻瓜们提供的方法,该方法将内部复杂的照相功能都隐藏起来了,比如你不必知道你自己的尿 阅读全文
posted @ 2018-03-09 15:02 熊猫的黑白照 阅读(165) 评论(0) 推荐(0)
摘要:一、继承 二、多态 三、分装 继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类(Base class)或超类(Super class),新建的类称为派生类或子类(Subclass)。 python中类的继承分为:单继承和多继承 查看继承 提示:如果没 阅读全文
posted @ 2018-03-07 19:31 熊猫的黑白照 阅读(214) 评论(0) 推荐(0)
摘要:类命名空间与对象、实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 #只要使用静态属性,就用类名去调用,全局生效 动态属性就是定义在类中的方法 其中类的数据属性是共享给所有对象的 阅读全文
posted @ 2018-03-06 18:33 熊猫的黑白照 阅读(191) 评论(0) 推荐(0)
摘要:一、面向对象编程——Object Oriented Programming 简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数 阅读全文
posted @ 2018-03-05 21:05 熊猫的黑白照 阅读(208) 评论(0) 推荐(0)