Python concurrent.future 使用教程及源码初剖

垃圾话

很久没写博客了,想了想不能再划水,于是给自己定了一个目标,写点 concurrent.future 的内容,于是这篇文章就是来聊聊 Python 3.2 中新增的 concurrent.future 模块。

Read More

Share Comments

你所不知道的 Flask Part1:Route 初探

前言

我自己都记不清楚上一次写博客是什么时候了(笑),上一次挖的坑现在还没填完,干脆,开个新坑吧,你不知道的 Flask ,记录下自己用 Flask 过程中一些很好玩的东西,当然很大可能我又会中途弃坑

开篇

引子

之前遇到一个很奇怪的需求,需要在flask中支持正则表达式比如,`@app.route(‘/api/(.*?)’)` 这样,在视图函数被调用的时候,能传入 URL 中正则匹配的值。不过 Flask 路由中默认不支持这样的方法,那么我们该怎么办?我们先思考五分钟吧?

好了,我先给出解决方案吧

1
2
3
4
5
6
7
8
9
10
from flask import Flask
from werkzeug.routing import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args):
self.map = map
self.regex = args[0]


app = Flask(__name__)
app.url_map.converters['regex'] = RegexConverter

Read More

Share Comments

asyncio 笔记

来源 annotated-py-asyncio

阅读补充:

1. 基本概念:

1.1 协程:

  • “协程 是为非抢占式多任务产生子程序的计算机程序组件,协程允许不同入口点在不同位置暂停或开始执行程序”。
  • 从技术的角度来说,“协程就是你可以暂停执行的函数”。
  • 如果你把它理解成“就像生成器一样”,那么你就想对了。

Read More

Share Comments

写在黎明之前

年少之成绩,或有时而可商,年少之作为,或有时而可讨,为此独立之精神,与自由之思想,纵历百十年整,亦与沱江水长流,共三光而永光

其实突然发现,没写过点什么特殊的文字,来纪念自己这一年。

今天,2月10日,距离离职完毕还有五天,距离离开成都还有11天,距离入职,还有17天。坐在自己屋子里,看着窗外的云和雨雾,慢慢的,用一点东西,来纪念自己过去的一年。

Read More

Share Comments

听说你会 Python (2):Python 高阶数据结构解析

前言

之前写过一篇《听说你会 Python ?》的文章,大家反响都还不错,那么我想干脆把这个文章做成一个系列,继续讲解一下 Python 当中那些不为人知的细节吧。然后之前在和师父川爷讨论面试的时候,川爷说了一句“要是我,我就考考你们怎么去实现一个 namedtuple ,好用,方便,又能区分人”,说者无心,听者有意,我于是决定在这次的文章中,和大家聊一聊 Python 中一个特殊的高阶数据结构, namedtuple 的实现。

Read More

Share Comments

用 Python 实现一个最简单的对象模型

一个简单的对象模型

Carl Friedrich Bolz 是一位在伦敦国王大学任职的研究员,他沉迷于动态语言的实现及优化等领域而不可自拔。他是 PyPy/RPython 的核心开发者之一,于此同时,他也在为 Prolog, Racket, Smalltalk, PHP 和 Ruby 等语言贡献代码。这是他的 Twitter @cfbolz

Read More

Share Comments

听说你会 Python ?

前言

最近觉得 Python 太“简单了”,于是在师父川爷面前放肆了一把:“我觉得 Python 是世界上最简单的语言!”。于是川爷嘴角闪过了一丝轻蔑的微笑(内心 OS:Naive!,作为一个 Python 开发者,我必须要给你一点人生经验,不然你不知道天高地厚!)于是川爷给我了一份满分 100 分的题,然后这篇文章就是记录下做这套题所踩过的坑。

Read More

Share Comments

Swift 声明式程序设计

在我第一份 iOS 开发工程师的工作中,我编写了一个 XML 解析器和一个简单的布局工具,两个东西都是基于声明式接口。XML 解析器是基于 .plist 文件来实现 Objective-C 类关系映射。而布局工具则允许你利用类似 HTML 一样标签化的语法来实现界面布局(不过这个工具使用的前提是已经正确使用 AutoLayout & CollectionViews)。

尽管这两个库都不完美,它们还是展现了声明式代码的四大优点:

  • 关注点分离: 我们在使用声明式风格编写的代码时声明了意图,从而无需关注具体的底层实现,可以说这样的分离是自然发生的。
  • 减少重复的代码: 所有声明式代码都共用一套样式实现,这里面很多属于配置文件,这样可以减少重复代码所带来的风险。
  • 优秀的 API 设计: 声明式 API 可以让用户自行定制已有实现,而不是将已有实现做一种固定的存在看待。这样可以保证修改程度降至最小。
  • 良好的可读性: 讲真,按照声明式 API 所写出来的代码简直优美无比。

    Read More

Share Comments

Python 描述符入门指北

很久都没写 Flask 代码相关了,想想也真是惭愧,然并卵,这次还是不写 Flask 相关,不服你来打我啊(就这么贱,有本事咬我啊
这次我来写一下 Python 一个很重要的东西,即 Descriptor (描述符)

Read More

Share Comments

Swift 3 中的函数参数命名规范指北

昨天,我开始将这个 Jayme 迁移到 Swift 3。这是我第一次将一个项目从 Swift 2.2 迁移至 Swift 3。说实话这个过程十分的繁琐,由于 Swift 3 在老版本基础上发生了很多比较大的改变,我不得不承认眼前这样一个事实,除了花费较多的时间以外,没有其余的捷径可走。不过这样的经历也带来一点好处:我对 Swift 3 的理解变得更为深入,对我来讲,这可能是最好的消息了。😃

在迁移代码的过程中,我需要做出很多的选择。更为蛋疼的是,整个迁移过程并不是修改代码那么简单,你还需要用耐心去一点点适应 Swift 3 中带来的新变化。某种意义上来讲,修改代码只是整个迁移过程的开始而已。

如果你已经决定将你的代码迁移到 Swift 3 ,我建议你去看看这篇文章来作为你万里长征的第一步。

如果一切顺利的话,在不久以后,我将回去写一篇博客来记录下整个迁移过程中的点点滴滴,包括我所作出的决定等等。但是眼前,我将会把注意力集中在一个非常非常重要的问题上:怎样正确的编写函数签名.

Read More

Share Comments