01 2018 档案
摘要:socket 应用层和tcp,ucp协议之间的一个接口,用户只需操作接口,复杂的数据组织工作由其内部自行完成。 TCP协议的socket(套接字): 服务端 客户端 UDP协议的scoket(套接字): 服务端 客户端 黏包 先写个例子看下黏包现象。 import socket sk = socke
阅读全文
摘要:网络:用于不同设备的程序之间进行数据交换。 网络通信的物理基础:网卡和网线 怎样找到一台设备的MAC地址呢? 通过IP协议我们可以获取到一台设备的IP地址,有了IP地址我们就可以在自己的局域网中进行不同设备之间的连接。 连接之后我们就可以进行通信。 设备可以通信之后,使用端口来确定要访问的程序。 o
阅读全文
摘要:logging模块:用于进行日志处理工作 基本的几种日志信息: 运行后控制台输出: 这几种信息是有级别的,默认debug和info级别的不输出,日志信息的级别顺序:CRITICAL > ERROR > WARNING > INFO > DEBUG。 两种配置方式: 函数配置: 特点: 对象配置: 特
阅读全文
摘要:configparser模块:用于按一定格式创建配置文件 创建 完成后的文件: 查看 增加 删除
阅读全文
摘要:hashlib模块:提供摘要算法 格式: 具体使用的方法: 从上面的例子看出摘要算法的特点: 加盐摘要:进一步提高密文的安全性,防止撞库! 动态加盐:使用用户名的某一部分作为加盐的对象或和盐进行拼接后加盐。
阅读全文
摘要:__getitem__,__setitem__和__delitem__ 实现了对象属性的字典化操作。 __new__:构造方法:创建一个对象 实例化要用到__new__方法 __new__方法的使用:单例模式 一种程序设计模式:一个类始终只有一个实例 __eq__和__hash__ set会依赖__
阅读全文
摘要:反射:通过字符串操作对象的相关属性。 虽然eval也可以这样操作,但是通过反射操作安全性更强。 1,getattr 2,hasattr 反射在模块中的应用。 3,setattr 通过字符串修改对象的属性 不常用 4,delattr 通过字符串删除对象的属性 不常用
阅读全文
摘要:property 内置装饰器函数 只在面向对象中使用 property 提供私有属性的查看,修改和删除 classmethod和staticmethod class Person: __key = '人类' def __init__(self, name): self.__name = name @
阅读全文
摘要:继承 先看个简单的例子了解一下继承。 class Animal: # 父类 def __init__(self, name, age, department): self.name = name self.age = age self.department = department def runn
阅读全文
摘要:面向对象 不同于面向过程的编程思想,面向对象是一种将程序抽象为一个个对象的编程思想,能更好的处理现实世界到的一些复杂问题。 通过下面的例子来初步了解面向对象的编程方式。 通过上面的例子简单总结一下 下面了解一下类和对象的命名空间,先定义一个类,在实例化两个对象做对比。 先研究下类 在看下对象 可以看
阅读全文
摘要:异常处理 在代码运行时,会因为各种原因出现bug,而程序遇到bug就会中断运行,而在日常生产中程序是要长时间运行不能随意中断的。因此就需要我们提前做好异常处理。 异常 异常处理:为了更合理的处理代码可能出现的错误 通过上面的例子,总结出的异常处理格式为: 特殊:finally,一般在函数中做异常处理
阅读全文
摘要:包:将解决一类问题的模块放在同一目录下就形成了一个包 为了更好的了解包,我们就模拟创建一个包 我们创建的那些'.py'文件就相当于一个个模块,可以在里面写一个简单的函数,用作测试。 包中模块的导入 __init__.py文件的作用 因此在我们自己创建一个包时,就可以利用__init__.py在完成内
阅读全文
摘要:序列化 json模块 1,dumps和loads 2,dump和load json一些参数的用法 pickle模块 pickle方法和json的方法相同 shelve模块 shelve只有open方法,打开文件返回一个序列化句柄,通过操作句柄来完成序列化的相关操作。 shelve writeback
阅读全文
摘要:模块的导入 导入流程 模块重命名 可以用于提高代码的兼容性 多模块导入 单使用模块下的一个功能 使用模块下的多个功能 __name__在模块中的特殊用法
阅读全文
摘要:time模块 和时间相关的功能模块。 1,时间戳时间 2,格式化时间 3,结构化时间 不同格式时间之间的转换。
阅读全文
摘要:sys模块 sys模块是与python解释器交互的一个模块。提供一些和python解释器相关的功能。
阅读全文
摘要:random模块 随机模块,用于处理随机问题。
阅读全文
摘要:os模块 python解释器与操作系统进行交互的模块。用于操作目录和文件。 os.path.abspath('path') # 获取path的绝对路径 os.path.split('path') # 将path分割成目录和文件名的元组返回 os.path.dirname('path') # 相当于o
阅读全文
摘要:collections模块 提供了一些额外的数据类型,供我们使用。 namedtuple:命名元组 deque:双向队列 介绍双向队列之前,先说明一下队列是什么。队列是一种先进先出的数据结构,先放进去的要先取出。 import queue q = queue.Queue() q.put(1) # p
阅读全文
摘要:re模块 通过re模块可以在python中使用正则表达式进行字符串匹配! 导入:import re 常用方法: findall search match split sub subn compile finditer findall 和 split的优先匹配 ps:re模块中的几个方法的参数中都有一
阅读全文
摘要:递归函数,在函数中调用自身函数,就会形成一个递归函数。例如: 由于递归函数的结构,在函数调用时,它会一直调用自身,而函数调用是会占用内存的,所以为了保护内存,python就限制了递归函数的递归深度,默认的限制深度为998。调用上面的函数函数它只能打印到998然后报错。 而这个限定是可以进行设定的,通
阅读全文
摘要:匿名函数 处理简单问题的简化函数,关键字lambda。 匿名函数的使用
阅读全文
摘要:内置函数 操作字符串代码 eval和exec compile 将字符串代码编译成eval或exec理解的对象供其进行操作 输入输出 print和input 内存相关 id和hash 文件操作 open 模块相关 import和__import__ 调用相关 callable 帮助 help 查看对象
阅读全文
摘要:生成器表达式 (满足条件的元素或其相关的操作 for 元素 in 可迭代对象 if 条件) 生成器取值send() send效果在获取下一个值的时候和next相似,不同之处可以给上一个yield的位置传数据。 第一个取值必须要用__next__()来取值不能用send() 最后一个yield也不能接
阅读全文
摘要:可迭代 内置方法中含有__iter__的数据类型都是可迭代的,只要是可迭代的就可以使用for循环,反之亦然。 迭代器 内置方法中含有__iter__和__next__的都是迭代器,所以迭代器一定是可迭代的 迭代器可以使用__next__()方法一个一个去获取值 迭代器的好处: 从容器内一一取值,可以
阅读全文