Python
愚 生 _
VX : Hyl11158704
有任何问题欢迎您微信联系我,备注优快云
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python 类型注解及业务应用 - inspect模块
函数定义的弊端 Python 是动态语言, 变量随时可以被赋值且赋值为不同的类型 Python不是静态编译型语言, 变凉了性是在运行期决定的 动态语言很灵活但这种特性也是弊端 def add(x, y): return x + y print(add(4, 5)) print(add('hello', 'world')) # add(4, 'hello') 报错 运行结果 9 h...原创 2019-05-10 16:00:55 · 333 阅读 · 0 评论 -
Python 插件化开发
动态导入 运行时, 根据用户需求(提供字符串), 找到模块的资源动态加载起来 1. 内建函数 __import__() __import__(name, globals=None, locals=None, fromlist=(), level=0) name 指代 模块名 import 语句本质上就是调用这个函数, 不鼓励直接使用它, 建议使用importlib.import_module...原创 2019-06-01 18:13:53 · 544 阅读 · 0 评论 -
Python 包管理
Python 中的包管理 为什么使用包管理 Python 的模块或者源文件直接可以复制到目标目录中, 就可以使用 为了更多项目调用使用或者共享给别人, 就需要打包发布到网络, 以便供人使用, 当然目的也是为了复用 Pypi (Python Package Index), 公共的模块存储中心 : https://pypi.org/ 主要工具 distutils 官方库 distuti...原创 2019-06-01 14:28:22 · 1280 阅读 · 0 评论 -
3
3原创 2019-06-06 15:17:51 · 253 阅读 · 0 评论 -
2
2原创 2019-05-31 21:27:56 · 244 阅读 · 0 评论 -
1
1原创 2019-05-31 21:27:19 · 226 阅读 · 0 评论 -
Python 实现双向链表(容器化)
双向链表 设计思路 整体设计分为两个类, 一个是节点类, 每个节点作为一个对象; 另一个是链表类, 根据相邻节点间关系(上一个可以找到下一个, 下一个可以找到上一个, head 节点和 tail 节点为 None), 实现对各个节点间关系的操作, 包括append, insert, pop, remove等 第二阶段将设计好的类封装成容器 整体代码看似复杂, 实际理解发现并非如此, 理清节点间关...原创 2019-05-30 16:48:41 · 326 阅读 · 0 评论 -
Python Descriptors -> 对数据进行校验
描述器的表现 用到3个魔术方法 : get()、set()、delete() 方法签名如下 : object.get(self, instance, owner) object.set(self, instance, value) object.delete(self, instance) self 指代当前实例, 调用者 instance 是owner的实例 owner 是属性...原创 2019-05-26 18:11:34 · 428 阅读 · 0 评论 -
Python 异常处理
Python 异常处理 异常 Exception 错误 Error 逻辑错误 : 算法写错, 例如加法写成了减法 笔误 : 例如变量名写错, 语法错误 函数或者类使用错误, 其实这也属于逻辑错误 错误是可以避免的 异常 Exception 本意指意外情况 这有个前提, 没有上面说的错误, 也就是说程序写的没有问题, 但是在某些情况下会出现一些意外, 导致程序无法正常的执行下去...原创 2019-05-21 13:32:24 · 809 阅读 · 0 评论 -
Python 搞定ls命令功能 - argparse 模块
实现功能 实现ls 命令功能-l 、 -a 、 -a 和–all 、-h选项 显示路径下的文件列表 -a 和–all 显示包含 “.”'开头的文件 -l 显示详细列表显示 -h 和 -l 配合, 个性化显示文件大小, 如1K, 1G, 1T,等, 可以按照1G = 1000M处理 类型字符 - c 字符 - d 目录 - 普通文件 - l 软连接 - b块设备 - s socket文件 - p...原创 2019-05-08 09:06:40 · 5291 阅读 · 0 评论 -
Python 封装/ 解构/ 丢弃变量
封装、解构、丢弃变量篇 这里的知识虽然简单,不过还是蛮实用的,我简单做了下整理,保证不了那天会忘鸭 ~ 封装 将多个值用逗号分割,再组合在一起 本质上,返回一个元组 (tuple),只是省略了小括号 栗子 : a = (2,6) #简单定义个元组 b = 2,6 #把2,6封装成元组 print(type(a)) #看下a...原创 2019-04-06 21:48:37 · 638 阅读 · 0 评论 -
Python 日志分析 -> ip、url、pv、useragent
import datetime import re from pathlib import Path pattern = '''(?P<remote>[\d.]{7,}) - - \[(?P<datetime>[\w/: +]+)\] \ "(?P<method>\w+) (?P<url>\S+) (?P<protocol>[\w\d...原创 2019-05-14 23:37:38 · 469 阅读 · 0 评论 -
Pyhon -> csv 文件、 ini 文件
csv文件 csv文件简介 参考http://www.ietf.org/rfc//rfc4180.txt 逗号分隔符Comma-Separated Values csv 是一个被行分隔符,列分隔符分成的行和列的文本文件 csv 不指定字符编码 行分隔符为\r\n, 最后一行可以没有换行符 列分隔符常为逗号或者制表符 每一行称为一条记录record 字段可以使用双引号括起来, 也可以不常使用, 如...原创 2019-05-01 13:59:19 · 356 阅读 · 0 评论 -
Python 搞定Base64 编码/ 解码
Base64 编码核心思想 : 每3个字节断开, 拿出一个3字节, 每6个断开, 成4段 因为每个字节其实只占了6位, 2**6 = 64, 因此有了base64的编码表 每一位当做一个8位看它的值, 这个值就是Base64编码表的索引值(0 ~ 63), 找到对应的字符 上图代表ASCII 码对应Base64编码的转换形式 OK, 下面我们来考虑以下情况: 一个字节能变成几个Base6...原创 2019-05-04 19:46:42 · 2587 阅读 · 0 评论 -
Python 序列化及其应用 - pickle、Json、MessagePack
为什么要序列化 内存中的字典、列表、集合以及各种对象, 如何保存到一个文件中 ? 如果是自己定义的类的实例, 如何保存到一个文件中 ? 如何从文件中读取数据, 并让它们在内存中再次回复成自己对应的类的实例 ? 要设计一套协议, 按照某种规则把内存中数据保存到文件中. 文件是一个字节序列, 所以必须把数据转换成字节序列, 输出到文件, 这就是序列化. 反之从文件字节序列恢复到内存并且还是原来的类型,...原创 2019-05-02 15:31:22 · 737 阅读 · 0 评论 -
Python 实现一个cache 装饰器可过期清除功能
实现一个cache 装饰器可过期清除功能 简化设计, 函数的形参定义不包含可变位置参数, 可变关键字参数和keyword-only参数, 可以暂时不考虑缓存大小, 也不考虑存满之后的换出问题 # 先来看这段代码 import time def add(x=4, y=5): time.sleep(3) return x+y # 以下6种可以认为是同一种调用 print(1, a...原创 2019-04-27 21:11:39 · 2683 阅读 · 1 评论 -
Python 函数装饰器的简单应用
装饰器的应用 写一个命令分发器 初步要求 : 程序员可以方便地注册函数到某一个命令, 用户输入命令时, 路由到注册的函数, 如果此命令没有对应的函数, 执行默认函数 分析 : 输入命令映射到一个函数, 并执行这个函数, 应该是cmd_tbl[cmd] = fn 的形式, 使用字典比较合适 如果输入某一cmd 命令后, 没有找到函数就调用缺省的函数执行, 正好是字典的缺省参数, cmd 是字符...原创 2019-04-27 09:26:49 · 308 阅读 · 0 评论 -
Python 排序算法整理 -> 冒泡/ 选择排序/ 直接插入排序/ 堆排序
冒泡法 Bubble Sort 基本原理 属于交换排序, 两辆比较大小后交换顺序,再固定到有序区 < 升序 > n 个数从左至右,编号从0 到n-1, 索引0 和1 的值比较,如果索引0 大, 则交换两者位置, 如果索引1 大,则不交换.继续比较索引1 和2 的值, 将大的值放在右侧, 直到n-2 和n-1 比较完, 第一轮比较完成. 第二轮从索引0 比较到n-2,因为最右侧n-1位...原创 2019-04-21 22:56:05 · 414 阅读 · 0 评论 -
Python 函数作用域/ 嵌套/ global语句使用/ 闭包/ 默认值作用域/ 变量名解析原则LEGB/ 销毁
函数简单整理__作用域、嵌套、global语句使用、闭包、默认值作用域、变量名解析原则LEGB、函数销毁 以下内容最好都在pycharm内运行,变量污染问题很头疼,还影响实验结果!!! 作用域 函数作用域指一个标识符的可见范围,也就是标识符的作用域,我们也常说变量的作用域 def foo(): x = 200 print(x) 上例中 x 是访问不到的,并且抛出(...原创 2019-04-13 13:34:57 · 650 阅读 · 0 评论 -
Python 列表操作 -> 深、浅拷贝/ 增删改查
列表索引 索引(下标) 正索引:从左到右,0开始,为列表内元素编号 负索引:从右到左,从-1开始 正负索引不可超界,否则报错IndexError 为了方便理解可认为列表从左到右排列,左为下界限,右为上界限 列表通过索引访问 list [index] , index就是索引,使用中括号访问 例如: l1 = [A,B,C,D] 那么列表l1中A,B,C,D元素 正索引依次为:0...原创 2019-03-28 14:54:58 · 389 阅读 · 0 评论
分享