摘要: 在系统设计中,经常我们希望设计一套插件机制,在不修改程序主体情况下,动态去加载附能。 我设想的插件系统: 1、通过类来实现 2、自动查找和导入 我们假设需要实现一个简单的插件系统,插件可以接收一个参数执行。 实现基础插件类 我们先构建一个基础插件类: plugin_collection.py cla 阅读全文
posted @ 2019-02-19 15:59 疯人院主任 阅读(2669) 评论(0) 推荐(0) 编辑
摘要: 无论你程序是做什么的,它经常都需要处理大量的数据。这些数据大部分表现形式为strings(字符串)。然而,当你对字符串大批量的拷贝,切片和修改操作时是相当低效的。为什么? 让我们假设一个读取二进制数据的大文件示例,然后将部分数据拷贝到另外一个文件。要展示该程序所使用的内存,我们使用 "memory_ 阅读全文
posted @ 2019-01-24 15:34 疯人院主任 阅读(2727) 评论(1) 推荐(1) 编辑
摘要: 对于来自JavaScript编码者来说,异步编程不是什么新东西,但对于Python开发者来说,async函数和future(类似JS的promise)可不是那么容易能理解的。 Concurrency vs Parallelism Concurrency和Parallelism听起来一样,但在实际编程 阅读全文
posted @ 2019-01-16 11:56 疯人院主任 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 本文旨在作为入门蓝牙开发的一个简单介绍 安装BlueZ和PyBluez $ sudo apt install libglib2.0 dev libbluetooth dev bluetooth $ pip install pybluez 介绍蓝牙编程 概览 找到通信的设备 确认如何进行通信 创建一个 阅读全文
posted @ 2018-12-29 18:17 疯人院主任 阅读(7777) 评论(0) 推荐(0) 编辑
摘要: Type hints最大的好处就是易于代码维护。当新成员加入,想要贡献代码时,能减少很多时间。 也方便我们在调用汉书时提供了错误的类型传递导致运行时错误的检测。 第一个类型注解示例 我们使用一个简单例子,两个整数相加。 def add(a, b): return a + b 上面的例子,可工作于任意 阅读全文
posted @ 2018-12-26 18:05 疯人院主任 阅读(823) 评论(0) 推荐(0) 编辑
摘要: Python当前人气暴涨。它在DevOps,数据科学,Web开发和安全领域均有使用。 但是在速度方面没有赢得美誉。 "这里" 有关于Python比较其他语言如,Java, C , Go, JavaScript, C++进行性能对比,其中Python是最慢的。包含了JIT(C , Java)和AOT( 阅读全文
posted @ 2018-12-13 16:05 疯人院主任 阅读(666) 评论(0) 推荐(0) 编辑
摘要: Click是一个Python用来快速实现命令行应用程序的包,主要优势表现在以下三点: 任意嵌套命令 自动生成帮助页 自动运行时lazy加载子命令 示例程序: import click @click.command() @click.option(' count', default=1, help=' 阅读全文
posted @ 2018-12-05 12:03 疯人院主任 阅读(910) 评论(0) 推荐(0) 编辑
摘要: Pipenv旨在将最好的包管理机制(bundler, composer, npm, cargo, yarn等等)带到Python中去。 它会为你的项目自动创建和管理virtualenv,也会在安装和移除包时自动同步 ,还生成了 文件描述了固定版本,以便在生产环境中构建。 Pipenv主要解决了以下问 阅读全文
posted @ 2018-12-05 11:23 疯人院主任 阅读(496) 评论(0) 推荐(0) 编辑
摘要: # 如何让你的Python程序支持多语言本文介绍如何通过Python标准库`gettext`帮助你的程序支持多语言。## 代码例子 import random guessesTaken = 0 print(_("Hello! What's your name?"))... 阅读全文
posted @ 2014-12-24 16:46 疯人院主任 阅读(4468) 评论(2) 推荐(1) 编辑